聚合(Aggregation)和组合(Composition)的区别

本文解析了面向對象設計中的兩種關鍵概念——聚合與組合,並通過具體的程式碼示例展示了它們之間的區別。聚合表示has-a的關係,相對較為鬆散;而組合則表示contains-a的關係,關聯性更強,且組成對象與被組成對象有相同的生命周期。
一種鬆散的對象閒的關係
部分可獨立于聚合而存在
 
关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,如下图所示,用空的菱形表示聚合关系: 
从实现的角度讲,聚合可以表示为: 
class A {...} class B { A* a; .....}  
当B类销毁的时候,A的指针a并不会被销毁的,在内存中还有a的位置了。
組合(Composition)
一種非常強烈的對象之間的關係
組合一旦銷毀的話,必須銷毀所有部分或把負責他們的權利轉移給其他對象
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值