内容简介:我们的目标是使类容易扩展,在不改变现有代码的情况下,就可以搭配新的行为以星巴此咖啡为例。比如,客户想要摩卡和奶泡深赔咖啡。那么,要做的是:
定义
动态地将责任附加到对象上,若要扩展功能,装饰着提供了比继承更有弹性的替代方案。
OO原则
- 封装变化
- 多用组合少用继承
- 针对接口编程,不针对实现编程
- 为了交互对象之间的松耦合而努力
- 类应该对扩展开放,对修改关闭
开闭原则
我们的目标是使类容易扩展,在不改变现有代码的情况下,就可以搭配新的行为
认识装饰者模式
以星巴此咖啡为例。比如,客户想要摩卡和奶泡深赔咖啡。那么,要做的是:
- 那一个深赔咖啡(DarkRoast)对象
- 以摩卡(Mocha)对象装饰它
- 以奶泡(Whip)对象装饰它
- 调用cost()方法,并依赖委托将调料的价格加上去
- 装饰者和被装饰者对象有相同的超类型
- 你可以用一个或多个装饰者包装一个对象
- 既然装饰者和被装饰对象有相同的超类型,所以在任何需要原始对象(被包装的)的场合,可以用装饰过的对象替代它
- 装饰者可以在所委托被装饰者的行为之前与或之后,加上自己的行为,以达到特定的目的
- 对象可以在任何时候被装饰,所以可以在运行时动态地、不限量地用你喜欢的装饰者来装饰对象
类图
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 设计模式——订阅模式(观察者模式)
- 设计模式-简单工厂、工厂方法模式、抽象工厂模式
- java23种设计模式-门面模式(外观模式)
- 设计模式-享元设计模式
- Java 设计模式之工厂方法模式与抽象工厂模式
- JAVA设计模式之模板方法模式和建造者模式
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java语言精粹
Jim Waldo / 王江平 / 电子工业出版社 / 2011-6 / 39.00元
这是一本几乎只讲java优点的书。 Jim Waldo先生是原sun微系统公司实验室的杰出工程师,他亲历并参与了java从技术萌生、发展到崛起的整个过程。在这《java语言精粹》里,jim总结了他所认为的java语言及其环境的诸多精良部分,包括:类型系统、异常处理、包机制、垃圾回收、java虚拟机、javadoc、集合、远程方法调用和并发机制。另外,他还从开发者的角度分析了在java技术周围......一起来看看 《Java语言精粹》 这本书的介绍吧!