我是UML设计的新手。在这里,我有一个问题。让我们说我有两个类,一个是主调用者类A,它将新建另一个类B.我应该使用用法来表示A和B(或聚合)之间的关系吗?此外,如果C类调用另一个类D中的方法,我应该使用什么?协会?还是用法?请帮忙。非常感谢。
答案 0 :(得分:3)
依赖是所有关系中最抽象的。在两个班级之间,它只意味着一个人以某种方式"意识到"另一个。示例:类A的对象接收对类B的对象的引用(在某些方法执行期间)并对其执行某些操作(如调用其方法)。 用法是一种特殊类型的依赖项,意味着A类使用B类。
关联在某种程度上比依赖关系更强。示例:类a具有类B的成员(属性)并永久保存此引用。与前一个示例的不同之处在于,此链接是长期的,而不是通过依赖关系表达的短期链接。
Agregation 和组合也是关联,但更强大。它们的语义取决于实现语言或上下文。 Agregation是Group-Member类型的非排他性关系(几个成员属于同一组,也可属于其他组)。如果集团是destroyd - 成员只是从中取消而不是destroyd。 构图是独家和非常强烈的关系:整体。部分完全由整体控制 - 实际上是其中的一部分。没有整体,部分就不存在,所以当整体被摧毁时,部分也会死亡。
答案 1 :(得分:2)
在UML中, Usage 是一种特殊类型的 Dependency ,其中一个模型元素(例如C类中的操作)需要另一个模型元素(例如,一个操作) D类)其“全面实施或运作”。因此,您的类C对您的D类存在使用依赖性,但没有关联。
我已经在我的教程Managing Unidirectional Associations in a JavaScript Frontend Web App中解释了如何在设计模型中使用关联。