请查看以下关于关系类型的摘录,摘自IBM Rational Software Architect文档。“depends upon”的意思如下:依赖关系表示一个模型元素(供应商或独立模型元素)的更改可能会导致另一个模型元素(客户端或依赖模型元素)的更改。 供应商模型元素是独立的,因为对客户端的更改不会影响它。 客户端模型元素依赖于供应商,因为对供应商的更改会影响客户端。“uses” 的意思如下:使用关系是一种依赖关系,其中一个模型元素需要另一个模型元素(或一组模型元素)的存在才能完全实现或运行。 需要另一个模型元素存在的模型元素是客户端,而需要存在的模型元素是供应商。 虽然使用关系表示持续的需求,但它也表示两个模型元素之间的连接并不总是有意义或存在。据我所读,“usage”是一个不太严格的“dependency”。
“Uses”是指一个类在执行某些操作时引用另一个类。 “Depends on”是指类A在其实现中使用另一个类B(例如作为方法的参数)。在这种情况下,更改类B可能需要更改类A。请注意,我说了类,但它同样适用于接口。维基百科上有一篇很好的文章:http://en.wikipedia.org/wiki/Dependency_%28UML%29 例如,您可以在类Driver和公开名为Drive()的接口IVehicle之间建立Uses关系。对Drive实现的更改不需要更改Driver,因此您可以说Driver使用IVehicle。但是,类Driver依赖于类Hand,因为Driver有两个属性:Hand LeftHand和Hand RightHand。如果这些属性的实现发生了更改,则需要考虑是否需要相应地更新Driver。