2017-03-22 85 views
-2

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

谢谢。

回答

0

看看下面的设计:

enter image description here

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

相比之下,实心钻石是一种复合聚合体。这意味着A的使用期限必须为B。因此,如果B去世,它所有的A都必须说出他们最后的祈祷。

对于复合聚合,在B侧应该只有1多重性,否则您会遇到麻烦。以下是他的规格说明:

合成聚合是一种强有力的聚合形式,它需要一次将最多一个合成对象包含在零件对象中。如果复合对象被删除,则它的所有零件实例都将被删除。

+0

你可以在钻石的一面画一个箭头来表示A可以导航到B吗? – Alberto

+0

你可以。然而,箭头符号现在被显示所有权的小点代替。此外角色名称清楚地表明您可以导航(因为您分配了角色名称)。 –