多样的构成关系

时间:2016-06-01 13:40:04

标签: uml

根据我的理解,没有复合对象就不能存在零件对象。但是在这个图中,根据给定的多重性,B类型的对象可以没有A类型的对象。可能吗?这是什么意思?

enter image description here

1 个答案:

答案 0 :(得分:3)

根据UML规范(9.5.3)

  

复合聚合是一种强大的聚合形式,要求零件对象一次包含在最多一个复合对象中。   如果删除了复合对象,则删除其所有部分实例   用它删除对象。

图表绝对正确(即使在UML考试中也会找到这样的例子)。

语义是B类的对象 - 如果在组合中 - 是A的一部分(A负责B,当A被删除时,所有目标的部分也将被删除)。作为类A的一个对象的一部分的类型B的对象不能同时是类型A的其他对象的一部分。但是,类型B的对象可能不是类型A的任何对象的一部分。 / p>

这是你的情况。因此,类型B的对象既不是A类型的任何对象的一部分(也可能在您的模型中),或者只是A类型的一个对象的一部分。