我知道在UML中,组合意味着一个类基本上包含另一个具有生命周期依赖关系的类,即当这个类被销毁时,组合类也被销毁。与聚合不同,类不共享。但后来我看到 - 在系统设计师会议上,这个:
[A Plane]<>COMPOSITION---------[Passenger]0,1--------<>[Seat]
这意味着如果飞机被摧毁,所有乘客都被摧毁(到目前为止是正确的)但乘客随后与座位处于聚合(或关联)关系,每组可以有 0 或 1 名乘客。但是在这种情况下,不是共享乘客吗?在现实中使用现代语言(例如 C#),如果只有 Seat 持有对乘客的引用,它仍然存在,无论 Plane 类被销毁。