可复用策略Composite合成/Aggregate 聚合

优先考虑composit|Aggregate,尽量不要使用extends,association(关联) 的特殊种类 Aggregation 它表示'拥有'关系或整体与部分的关系
Composition 可理解成强关联关系,强得多的'拥有'关系,一个合成的新的对象完全拥有对其组成部分的支配权,包括它们的创建/湮灭,
一个合成关系中的成分对象是不能与另一个合成关系共享的。
一个成分对象在同一时刻内只属于一个合成关系
合成是值的聚合(Aggregation by value)、聚合是引用的聚合(Aggregation by Reference)
·composite/aggregation Reuse
新对象存/取成分对象的唯一方式是接口。
成份对象的内部细节,新对象是不可见。
此复用机制支持包装/所需依赖较少
每一个新对象可以将焦点集中在一个任务上
新对象可以动态引用与成分对象相同类型的实例,类似 setUserList(User userObj) 在些User可看作一个接口
此合成/聚合复用机制会有多个实例需要管理
·使用extends
extends 是OO特有的复用机制,很容易就会被滥用。
继承是类型的复用,它通过扩展一个已有对象的实现来对现有功能进行扩展/增加新的功能,基类要捕获共同的属性/形为,而子类要扩展/重写一些属性/形为。
继承会破坏超类的封装,因为它会将处理细节暴露给子类。
水波效应,如果超类处理机制改了,相应对子类的改动是非常大的。
IS A 与 HAS A 的区别
IS A 代表一个类是令一个类的一种
HAS A 代表一个类是令一个类的一个角色
·composite/aggregation复用机制可应用到几乎任何环境中去,而继承只能应用到有限的环境中。


CompositeAggregate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值