设计模式之装饰者模式
来源:互联网 发布:python随机数求和 编辑:程序博客网 时间:2024/05/22 13:55
此模式动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案,以一图一概括。
要点
1. 装饰者和被装饰对象有相同的超类型。
2. 可以用一个或多个装饰者包装一个对象。
3. 装饰者可以在所委托被装饰者的行为之前或之后,加上自己的行为,以达到特定的目的。
4. 对象可以在任何时候被装饰,所以可以在运行时动态的,不限量的用你喜欢的装饰者来装饰对象。
5. 装饰模式中使用继承的关键是想达到装饰者和被装饰对象的类型匹配,而不是获得其行为。
6. 装饰者一般对组件的客户是透明的,除非客户程序依赖于组件的具体类型。在实际项目中可以根据需要为装饰者添加新的行为,做到“半透明”装饰者。
7. 适配器模式的用意是改变对象的接口而不一定改变对象的性能,而装饰模式的用意是保持接口并增加对象的职责。
类方法调用图如下
0 0
- 设计模式之装饰者设计模式
- 设计模式 之 装饰者
- 设计模式之装饰者模式
- 设计模式之装饰者模式
- 设计模式之Decorator(装饰者模式)
- 设计模式之五---装饰者模式
- 设计模式之---装饰者模式
- c++设计模式之装饰者模式
- Php设计模式之装饰者模式
- java设计模式之装饰者模式
- 设计模式之装饰者模式
- 【设计模式】之装饰者模式
- HeadFirst设计模式之装饰者模式
- c++设计模式之装饰者模式
- 设计模式之装饰者模式
- 设计模式之--装饰者模式
- 设计模式之装饰者模式
- 设计模式之装饰者模式
- UML类图设计 .
- 用GWT实现基于Ajax的Web开发
- 发违法违法违法活该而过热
- LocalBroadcastManager、HandlerThread及Parcelable的使用
- 浑然替换他如何认同和让他和他
- 设计模式之装饰者模式
- <?>getCurrentSession绑定的线程,需不需要taskExecutor
- ios下label多行无效问题(google : uilabel multiline autolayout)
- StarUML使用说明-指导手册
- 【贪心+高精度】NOIP2012D1T2国王游戏Codevs1198
- 个儿隔热共和国和二
- oracle过程函数的实例
- 发温哥华爱过后啊哈好
- 新手报到