我正在创建一个UML设计类图,其中我的“伯格”(丹麦语)类最终成为另外两个类(整个)的一部分:
一个关系是一个组合,一个关系是一个聚合。这可能吗?为什么/为什么不呢?
答案 0 :(得分:0)
您不能有两个组成要对 Borger 进行合成,因为复合聚集是一种强大的聚集形式,需要一次将一个对象最多包含在一个复合对象中 (formal-17-12-05.pdf第112页的9.5.3节),但要具有组成( AggregationKind 是 composite )和一个聚合(具有 AggregationKind 是 shared )。
AggregationKind 评估 shared 的精确语义未在规范中给出:共享聚合的精确语义 会因应用程序区域和建模器的不同而有所不同(仍然是formal-17-12-05.pdf第112页的9.5.3节),因此您可以确定其含义,以使其与您的案例兼容。
但是您的情况有点奇怪,出于可读性考虑,我建议使用一个组合和一个简单的属性( AggregationKind 为 none )。
请注意,在Java中,您总是使用指针, Borger 的实例不能真正成为一部分(但是在C ++中,这是可能的)。
答案 1 :(得分:-1)
是的,允许。据我所知,UML规范中没有禁止它的内容。