我有点困惑它是哪一个。
您可以说它通过指针“使用”对象 - 因此是关联。但这听起来也像聚合——“有一个”对象,但是当这个对象死亡时,并不意味着被引用的对象死亡。
哪一个在 UML 中最有意义?
我有点困惑它是哪一个。
您可以说它通过指针“使用”对象 - 因此是关联。但这听起来也像聚合——“有一个”对象,但是当这个对象死亡时,并不意味着被引用的对象死亡。
哪一个在 UML 中最有意义?
它可以指示关联、聚合和事件组合。三者之间的区别是语义上的,而不是静态的或特定于实现的。
但是 UML 为不同的解释留下了很大的空间,所以你永远不会在这里得到“正确”的答案。
首先,“聚合关系”实际上是一种(二进制)关联,其中一端具有“无”以外的聚合类型。那么聚合只是与精细语义的关联。
聚合可以是复合的(全菱形)或共享的(空心菱形)。复合聚合意味着“复合对象对复合对象的存在和存储负责”(然后在删除复合时引用的对象死亡,但在删除复合之前可能会删除一部分)。
另一方面,共享聚合不绑定聚合对象的生命周期(UML 规范说“共享聚合的精确语义因应用程序区域和建模者而异”和“聚合的精确生命周期语义是一个语义变化点”)。它们介于朴素的联想和复合的联想之间。