UML图表中的聚合基数

时间:2017-03-22 13:35:55

标签: uml aggregation

我对聚合有两个疑问。在类图中,类A具有类B的聚合: 1)钻石方面的基数是多少? 2)可以表示B类有权访问A? (内容可以看到容器)

谢谢。

1 个答案:

答案 0 :(得分:0)

采取以下设计:

enter image description here

A可以将B视为b,反之亦然可以视为a。未填充的菱形是一个共享聚合,根据UML规范没有固定的语义(建议在当前域中同意它的含义)。多重性表明A在0..*中聚合B次。在A中可以看到更多1..* B。现在开始思考这可能意味着什么以及聚合(没有固定语义的共享)如何影响设计。

相反,填充的钻石是复合聚合物。这意味着A的生命周期与B绑定。因此,如果B去世,那么所有A也必须说出他们的最后一次祷告。

使用复合聚合,1侧应该只有B多重性,否则会遇到麻烦。这是他的规范所说的:

  

复合聚合是一种强大的聚合形式,需要一次将一个零件对象包含在最多一个复合对象中。如果删除了复合对象,则会删除作为对象的所有零件实例。