“使用”和“依赖”之间有什么区别?

时间:2011-06-30 21:48:51

标签: oop uml terminology

在此beginners guide to Dependency Injection中,我注意到the UML diagram区分了“使用”和“取决于”。

由于两者都需要在“使用”或“依赖”的类中使用某种形式的引用,我想知道:两者之间的区别是什么?

2 个答案:

答案 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是否需要相应更新。