为什么这个班级在作文中被分享?

时间:2013-11-06 18:50:46

标签: class oop uml class-diagram ambiguity

我知道在UML中,组合意味着一个类基本上包含其他具有生命依赖性的类,即。当这个类被销毁时,编写类也会被销毁。与聚合不同,该类不是共享的。 但后来我在系统设计师大会上看到了这一点:

[A Plane]<>COMPOSITION---------[Passenger]0,1--------<>[Seat] 

这意味着如果飞机被摧毁,所有乘客都将被摧毁(到目前为止正确),但乘客则与座位处于聚合(或关联)关系,每组乘客可以有0或1名乘客。但在这种情况下,乘客不分享? 实际上,对于现代语言(例如C#),只要座位保持对乘客的引用,无论Plane类被破坏,它都将存在。

1 个答案:

答案 0 :(得分:0)

更好地表达这些类别之间的关系将是座位(而不是乘客)是飞机的组成的一部分,并且乘客与座位关联。拥有座位的乘客的聚合在技术上表达了更强的关系,但是关联似乎是更自然(即“真实世界”)的关系。当飞机被“摧毁”时,座位也会被“摧毁”,但是乘客“活着”,他们与模型的其他部分有关联,例如在飞行路线的另一条腿上的另一架飞机上的座位。