多个相同类型的成员:如何在UML类图中表示

时间:2016-10-19 05:02:33

标签: uml

我似乎无法找到这个现有的问题,但我可以随意指出它。

想象一下熟悉的童话的以下情况:

 ------------            -------------
|    Bear    |--------<>|  BearHouse  |
|------------|          |-------------|
|+name:string|          |+mama: Bear  |
 ------------           |+papa: Bear  |
                        |+baby: Bear  |
                         -------------
  • 这被认为是聚合还是组合? (我会假设作文)
  • 如果是成分,单个黑钻石线是否足够,或者我应该使用其中3个?

我只是想确保我的班级图是准确的,或者至少更有意义。

谢谢

2 个答案:

答案 0 :(得分:1)

我认为BearHouse不是由&#39;组成的。熊,但只作为熊的一个可能的位置。我既不使用聚合也不使用合成。

顺便提一下,图表中有一些冗余。这种关系说BearHouse由Bears和妈妈,爸爸和宝宝组成,他们说,除了这种关系,BearHouse特别与三只熊有关系。

答案 1 :(得分:1)

而不是属性使用命名关联:

enter image description here

可能是爸爸和妈妈的多重性为1,婴儿为0 .. *会很好(尽管在这些时候也有可能将爸爸或妈妈定为0..2并且对于摩门教妈妈来说也是如此1 .. *)

关于构图:你最好忘记这个令人讨厌的概念。它没有带来真正的附加价值,只会导致对其需求的无效讨论。只需使用具有多重性的关联。组合/聚合可用于某些数据库设计概念和(当前不需要的)内存管理概念。