类继承和对象组合

类继承和对象组合是OOB中最常用的两种 技术。
1. 类继承
又被称为白箱复用,white box reuse。
优点:
类继承可以方便的改变复用的实现,当一个子类重定义了一些而不是全部操作时,它也 能影响它所继承的操作。
缺点:
在编译时刻就定义了,无法在运行时刻改变从父类继承的实现。
子类实现与父类紧密地依赖,父类实现的任何变化将影响子类。这种依赖限制了灵活性和复用性。
一个解决方法就是只继承抽象基类,抽象类一般提供较少的实现。
2. 对象组合(object composition)
又被称为黑箱复用,black box reuse.
对象组合通过获得对其他对象的引用而在运行时刻动态定义。
优点:因对象是只能通过接口访问,所以并不破坏封装性。只要类型一致,运行时刻可以用一个对象替代另一个对象。
因为对象的实现是基于接口写的,所以实现存在较少的依赖关系。
另外,优先使用组合有助于保持类的封装,集中在单个任务上。这样类和类继承层次保持较小规模,不会增长为不可控制的庞然大物。
还有,基于对象组合的设计会有更多的对象而不是较少的类,且系统的行为将依赖于对象间的关系而不是被定义在某个类中。
所以,
“优先使用对象组合,而不是类继承”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值