在此beginners guide to Dependency Injection中,我注意到the UML diagram区分了“使用”和“取决于”。
由于两者都需要在“使用”或“依赖”的类中使用某种形式的引用,我想知道:两者之间的区别是什么?
答案 0 :(得分:4)
查看从IBM Rational Software Architect documentation获取的关系类型的块引用。
“取决于”意味着以下内容:
依赖关系表示 改变为一个模型元素( 供应商或独立模型元素) 可以导致另一个模型的变化 元素(客户端或依赖模型 元件)。供应商模型元素 是独立的,因为改变了 客户端不会影响它。客户端 model元素取决于供应商 因为改变了供应商 影响客户。
“使用”表示以下内容:
使用关系是依赖关系 关系中的一个模型 元素需要存在 另一个模型元素(或模型集) 要素的全面实施 或操作。模型元素 需要存在另一个模型 element是客户端和模型 需要存在的元素是 供应商。虽然用法 关系表明正在进行中 要求,它也表明 两个模型之间的联系 元素并不总是有意义的 本。
当我读到它时,“用法”是一种不太严格的“依赖”。
答案 1 :(得分:1)
“使用”是指一个类在某些操作中引用另一个类的地方。
“取决于”是A类在其实现中使用另一个B类的地方(例如作为方法的参数)。在这种情况下,更改B类可能需要更改A类。
注意我说过Class,但它同样适用于Interfaces。
维基百科有一篇很好的文章:http://en.wikipedia.org/wiki/Dependency_%28UML%29
因此,例如,您可以在类驱动程序和接口IVehicle之间使用Uses关系,该关系公开了一个名为Drive()的方法。对Drive的实现的更改不需要对Driver进行任何更改,因此您说Driver使用IVehicle。
然而,类驱动程序具有对类别的依赖性,因为驱动程序具有两个属性:Hand LeftHand和Hand RightHand。如果这些实现发生了变化,则需要考虑Driver是否需要相应更新。