UML类图 - 何时使用使用、聚合或关联?

4

我在UML设计方面是个新手。在这里,我有一个关于它的问题。假设我有两个类,一个是主调用者类A,它将新建另一个类B。我应该使用usage来表示A和B之间的关系(或聚合)吗?此外,如果一个类C调用另一个类D中的方法,我应该使用什么?协会?还是用法?请帮忙解答,非常感谢。


1
你说的“it will new another class B”是什么意思?请使用正确的英语。 - Gerd Wagner
浏览一本好书可能非常有帮助,例如这本书:http://www.uml-diagrams.org/dependency.html,并且从示例中学习也可能很有帮助,例如这个列表:http://www.uml-diagrams.org/index-examples.html。 - xmojmr
2个回答

10
依赖关系是所有关系中最抽象的。在两个类之间,它仅意味着一个类以某种方式“知道”另一个类。例如:类A的对象在执行某个方法时接收到类B的对象的引用,并对其进行一些操作(如调用其方法)。 使用关系是一种特殊类型的依赖关系,表示类A使用类B。 关联关系比依赖关系更强。例如:类A具有类B的成员(属性)并永久保留此引用。与前面的例子不同,这个链接是长期的,而不是通过依赖关系表达的短期链接。 聚合关系组合关系也是关联关系,但是它们的语义取决于实现语言或上下文。聚合是一种非排他性的Group-Member类型关系(多个Member属于同一组,也可以属于其他组)。当Group被销毁时,Members只是从其中解除分配而不被销毁。组合是一种排他且非常强的整体-部分关系:部分完全受整体控制 - 实际上是其一部分。没有整体,部分就不存在,因此当整体被销毁时,部分也将消失。

6
在UML中,使用是一种特殊的依赖类型,其中一个模型元素(例如类C中的操作)需要另一个模型元素(例如类D中的操作)进行“完整实现或操作”。因此,您的类C对您的类D存在使用依赖但没有关联关系。
我在我的教程"管理JavaScript前端Web应用程序中的单向关联"中解释了如何在设计模型中使用关联。

这可能是一个很好的答案,但链接已过期,请在答案中包含所有细节。 - xenoterracide

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接