我发现将聚合定义为“我们将那些对象具有独立生命周期,但有所有权,并且子对象不能属于另一个父对象的关系称为聚合。”
我对“子对象不能属于另一个父对象”感兴趣,是真的吗?
其实不然。聚合被定义为两个对象之间的关系,其中对象A“使用”对象B。A和B可以独立存在。此外,如果A使用B,B仍然可以被其他对象使用。聚合关系并不构成所使用的对象与其用户之间的排他绑定。聚合通常出现在一个对象提供服务并且任何其他对象都可以请求该服务的所有场景中。
另一方面,组合被定义为对象 A 拥有对象 B 的关系。事实上,如果不被 A“拥有”,B 就不可能存在;因此它不能独立存在(或者说它独立存在没有意义)。组合描述了一个对象作为另一个对象的属性出现的所有情况。