如果我们考虑一个 UML 图,其中我们有一个对象,其中包含另一个类的对象集合。两个类之间会有什么样的关系。
是聚合还是组合?
具有集合的对象不会直接拥有这些对象,而是集合将持有它们。但是在这种情况下,我们可以将其表示为 1 对多、包含类型的关系吗?
我对 UML 很陌生,如果这似乎是一个完全的菜鸟问题,我很抱歉。
更少的 UML,更多的概念,实用的答案
您有第一个对象,其中包含另一个第二个对象。
第二个对象本身就是一个集合,其中包含多个对象元素。
从非常技术、设计或编程的角度来看,有人可能会认为元素与第一个对象无关,而是与第二个对象相关,作为它的容器。
第一个对象将包含和管理对象的过程委托给第二个对象。
我在设计和编程中多次使用过这个案例。在许多集合库(数组、列表、堆栈)中,每个项目都有对容器的引用。
我有时会在每个项目中添加对第一个对象本身的引用。
因此,您可能会将主要的第一个对象和集合对象视为单个对象。
干杯。
组合是一种“部分”关系,例如:每辆汽车都有引擎,如果引擎不存在,汽车就无法工作。所以汽车和发动机之间的关系,就是组合。
但是聚合是一种“具有”关系,在聚合中,对象可以像汽车和收音机一样独立存在。
所以,如果你的关系太强,它是组合还是不是聚合。