带箭头和不带箭头的 UML 聚合的区别

Posted

技术标签:

【中文标题】带箭头和不带箭头的 UML 聚合的区别【英文标题】:Difference of UML Aggregation with and without arrow head 【发布时间】:2018-08-26 20:23:54 【问题描述】:

注意:这不是uml-aggregation-with-and-without-arrow-head的复制品,而是它的改进版!

在uml-aggregation-with-and-without-arrow-head 中,聚合被解释为黑色填充钻石。这显然是错误,因为 FILLED 钻石是一种组合物。到目前为止我还没有看到带有箭头的组合,所以我的问题是在 aggregation

的上下文中

我提出问题的动机来自 Gof23。那本书中的类图包含带有箭头的聚合。所以我对此很困惑,因为我通常只使用没有箭头的聚合

问题:带箭头的聚合<>----->不带箭头的聚合<>-----有什么区别? p>

【问题讨论】:

Aggregation and navigability at the same end的可能重复 这仍然是重复的。提供给另一个问题的答案对于这个问题仍然有效,因为它清楚地表明“任何关联”。如果您有共享或复合聚合并不重要。同样在规范的新版本中,术语shared aggregationcomposite aggregation 优于旧术语aggregationcomposition。因此,对聚合的引用涵盖了这两种情况,聚合通常用菱形表示,而空心或填充仅表示聚合是共享的或复合的。 UML Aggregation with and without arrow head的可能重复 【参考方案1】:

你的问题的答案和我的问题的答案一样

composition有箭头<>----->composition没有箭头<>-----有什么区别?

请参阅https://***.com/a/21767999/2795909,但您必须将实心菱形(用于成分)替换为空心菱形(用于聚合)。

由于您询问导航箭头的使用,答案并不取决于关联的类型(普通、聚合、复合)。所以,你也可以完全放下钻石问

带箭头----->关联和不带箭头-----关联有什么区别?

仍然得到相同的答案。

【讨论】:

非常感谢您的提醒 :) 这个答案确实解释了我的困惑

以上是关于带箭头和不带箭头的 UML 聚合的区别的主要内容,如果未能解决你的问题,请参考以下文章

UML速查

UML类图

UML类图画法及其之间关系

UML箭头和类结构关系

(转)看懂UML类图和时序图

UML图标含义及记忆方法