0

我知道在UML中,组合意味着一个类基本上包含另一个具有生命周期依赖关系的类,即当这个类被销毁时,组合类也被销毁。与聚合不同,类不共享。但后来我看到 - 在系统设计师会议上,这个:

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

这意味着如果飞机被摧毁,所有乘客都被摧毁(到目前为止是正确的)但乘客随后与座位处于聚合(或关联)关系,每组可以有 0 或 1 名乘客。但是在这种情况下,不是共享乘客吗?在现实中使用现代语言(例如 C#),如果只有 Seat 持有对乘客的引用,它仍然存在,无论 Plane 类被销毁。

4

1 回答 1

0

这些类之间关系的更好表达是座位(不是乘客)是飞机组成的一部分,而乘客与座位相关联。有座位的乘客聚集在技术上会表达更强的关系,但关联似乎是更自然(即“现实世界”)的关系。当飞机被“摧毁”时,座位也被“摧毁”,但乘客“活着”,他们与模型其他部分的关联也是如此,例如航班行程另一段的另一架飞机上的座位。

于 2013-11-06T19:11:15.800 回答