是否可以通过阅读源代码来区分组合和聚合关系?
我试图找到一些模式,我在下面列出了它们.
我以this site为例来解释我认为的模式
组成
public class Engine { . . . } public class Car { Engine e = new Engine(); ....... }
聚合
public class Address { . . . } public class Person { private Address address; public Person(Address address) { this.address = address; } . . . }
我发现这些模式可以区分
组成(是其中的一部分)
>定义为一个类的字段.
>示例:[Engine e] Engine定义为Car类的字段e
>在类中实例化和分配.
>示例:[Engine e = new Engine();]引擎在实例中被实例化
类
聚合(有)
>定义为一个类的字段
>示例:[私有地址;]地址定义为字段
类Person的地址
>在课堂上安排好
>示例:[Address address = new Address();]地址已实例化
外面的人.
>示例:[Person person = new Person(address);]实例
地址作为参数通过构造函数传递并分配
在Person类的构造函数中.
我可以考虑这些来区分聚合和组成关系吗?
是否存在更多用于区分的限制因素?