HeadFirst设计模式之继承与组合
来源:互联网 发布:弹性光网络 编辑:程序博客网 时间:2024/05/22 10:24
摘自:HeadFirst设计模式第85页
大师与门徒……
大师:我说蚱蜢呀!距离我们上次见面已经有些时日,你对于继承的冥想,可有精进?
门徒:是的,大师。尽管继承威力强大,但是我体会到它并不总是能够实现
最有弹性和最好维护的设计。
大师:啊!是的,看来你已经有所长进。那么,告诉我,我的门徒,不通过继承
又能如何达到复用呢?
门徒:大师,我已经了解到利用组合(composition)和委托(delegation)可以在
运行时具有继承行为的效果。
大师:好,好,继续……
门徒:利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会
继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在
运行时动态地进行扩展。
大师:很好,蚱蜢,你已经开始看到组合的威力了。
门徒:是的,我可以利用此技巧把多个新职责,甚至是设计超类时还没有想到的
职责加在对象上。而且,可以不用修改原来的代码。
大师:利用组合维护代码,你认为效果如何?
门徒:这正是我要说的。通过动态地组合对象,可以写新的代码添加新功能,而
无须修改现有代码。既然没有改变现有代码,那么引进bug或产生意外副作用的机
会将大幅度减少。
大师:非常好。蚱蜢,今天的谈话就到这里。希望你能在这个主题上更深入……
牢记,代码应该如同晚霞中的莲花一样地关闭(免于改变),如同晨曦中的莲花一
样地开放(能够扩展)。
阅读全文
0 0
- HeadFirst设计模式之继承与组合
- HeadFirst设计模式学习之组合模式
- Delphi 设计模式:《HeadFirst设计模式》Delphi2007代码---组合模式之Menus
- 关于设计模式中的继承与组合
- HeadFirst 设计模式 9迭代器与组合模式(餐厅合并)
- 继承,组合设计模式,
- HeadFirst设计模式之策略模式
- HeadFirst设计模式之观察者模式
- HeadFirst设计模式之装饰者模式
- 《HeadFirst 设计模式》之观察者模式
- 调侃《HeadFirst设计模式》之策略模式
- 调侃《HeadFirst设计模式》之观察者模式
- 《HeadFirst设计模式》之策略模式
- HeadFirst设计模式学习笔记10——组合模式
- HeadFirst设计模式_读书笔记_009_ 组合模式
- 《HeadFirst设计模式》书摘-模板方法/模式迭代器/组合
- 设计模式之--迭代器与组合模式
- 设计模式之迭代器与组合模式
- 动态规划:单调递增子序列
- 剑指offer 之 二进制中1的个数
- 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
- [thinkPHP5项目实战_04]命名空间的引入
- Linux下升级gcc、gdb工具
- HeadFirst设计模式之继承与组合
- python入门(六):列表,元组的使用
- 深入理解Java虚拟机(4)-.Class文件格式(三)
- js控制用户一个小时之内没有任何操作自动退出
- eclipse常用快捷键
- nova 尽然不支持 boot_volume 注入 key 和 passwd
- 注册手机号码
- EKF2学习之控制融合模式
- 数组Array、对象Object、json格式常用的方法小结。