组合和聚合的区别

本文探讨了组合和聚合的区别,重点在于它们在对象关系中的体现。组合是part-of关系,代表强关联,如人类与心脏,两者生死相关;而聚合是has-a关系,如班级与学生,学生可以独立存在。两者的区别体现在依赖性、关系类型、关联强度和生命周期等方面。
摘要由CSDN通过智能技术生成

组合:part-of关系,父类拥有子类,子类不能独立于父类存在

组合是一种受限制的聚合形式,代表了part-of关系;其中的两个实体(或者类)是高度依赖于彼此的。就好比如:人类和心脏,人类需要心脏来生存,心脏也需要人体才能生存。

换句话说,当类(实体)彼此依赖并且它们的寿命相同时(如果一个人死了,那么另一个也是死去),那么它就是一个组合。例如:如果没有人类,心脏就没有意义了。

public class Family {
   
    private List<Child> children; //一个家庭里有许多孩子

    // ...
}

Class ==> Student

班级和学生是一种聚合关系。一个班级,可以有学生,也可以没有学生;反过来,当我们把班级解散,学生仍然存在。

public class Class {
   

    private List<Student> students;

    public Class() {
   } //可创建一个空班级

    public Class(L
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值