我为有多少本书相互矛盾感到疯狂。
Class A {} class B {void UseA(A a)} //some say this is an association,
no reference is held but communication is possible
Class A {} class B {A a;} //some say this is
aggregration, a reference is held
但许多人认为持有一个引用仍然只是一种关联,而对于聚合,他们使用列表-在我看来这是相同的,它仍然是一个引用。
我很困惑,我想了解这个问题。
例如:在这里:http://aviadezra.blogspot.cz/2009/05/uml-association-aggregation-composition.html - 强关联和聚合之间有什么区别,在这两种情况下,作者都使用字段存储引用。
另一个例子: 这被称为关联:
![enter image description here](https://istack.dev59.com/cs8dh.gif)
![enter image description here](https://istack.dev59.com/yzVeo.webp)
public class Professor {
// ...
}
public class Department {
private List<Professor> professorList;
// ..
}
再一次,有什么不同吗?在两种情况下都是引用。
UML导航性
,而UML聚合
则是关于“整体/部分关系”。 - xmojmraggregation: AggregationKind
决定了类型。请参见www.omg.org/spec/UML/2.4.1/Superstructure
中的“内核包类图7.12”。如果需要使用“列表”来保存“引用”,则由UML multiplicity
确定。如果关联不可导航,则根本没有“引用”。其中一些术语是正交的,而另一些则是特殊情况(子类)。我建议您选择一本好书(例如uml-diagrams.org)并使用它来做些什么。 - xmojmrDepartment-Course
和Department-Professor
都是UML关联
。同时,这两个关联都可以标记为UML聚合
(根据特定大学的“业务规则”,甚至可以标记为UML组合
)。 - xmojmr