OOP | 深入理解关联、聚合和组合

在面向对象的设计思路里,需要经常处理类与类之间的关系。关联、聚合和组合是就是类与类之间三种不通的关系。

什么是关联?

简单的讲,类之间的关联关系代表着对象有着独立的生命周期,没有从属关系。我们以学生和老师举例。一个学生可以关联多名老师,而一个老师也可以关联多名学生。但是,他们都有各自的生命周期。当老师离开教室,不必删除任何学生。学生仍可以留在教室听其他老师的课程。

什么是聚合?

关联指的是对象之间有独立的生命周期,但没有从属关系。而聚合则是既有独立的生命周期,又有从属关系。需要强调的是,子对象不能出属于其他对象。以手机与手机电池举例,手机电池从属于手机。如果手机损坏了,那么手机电池仍可以为其他手机提供电源,不必删除。然而,手机电池却不能为电脑提供电源支持。

什么是组合?

组合指的是那些没有独立生命周期,父对象删除后,子对象也要删除的类关系。以问题和答案距离,一个答案对应一个问题。如果问题删除了,相应的答案也要删除。

事实上,我们在确定类关系的时候,往往会觉得非常复杂。因为,关联、聚合和组合之间有着超集关系。如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟华328

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值