如何理解装饰模式?
2010-08-18 08:02
155 查看
一、为什么要使用装饰模式呢?
使用装饰模式要达到这样一个目的,给某一个类附加一些额外的功能,也就是说做一些功能扩展,但是又不改变类原有的功能。
二、什么是装饰模式呢?
通过上面的理解,我们可以得出一个结论,装饰模式是动太的扩展一个对象的功能,而不需要改变原始类代码的一种成熟模式。
三、装饰者与被装饰者
装饰者与被装饰者是没有直接的关系,但是它们拥有一些共同的东西,这样说吧,装饰者在装饰被装饰者的时候,它肯定是要能够装饰被装饰者,不能说把一些个不相干的装饰者硬往被装饰者上装饰,这样肯定就成了一种不伦不类的类了。比如说我拿石头去装饰米饭,那不是要人命吗?
在装饰者模式里面被装饰者是不需要经常变动的,而装饰者确是随时都有可能改变的。那么该如何应对装饰者的变呢?是什么意思呢,如果我想用绿叶装饰鲜花,但是过一段时间我又想把鲜花插入花瓶,
装饰者一定要有装饰对象的能力。
使用装饰模式要达到这样一个目的,给某一个类附加一些额外的功能,也就是说做一些功能扩展,但是又不改变类原有的功能。
二、什么是装饰模式呢?
通过上面的理解,我们可以得出一个结论,装饰模式是动太的扩展一个对象的功能,而不需要改变原始类代码的一种成熟模式。
三、装饰者与被装饰者
装饰者与被装饰者是没有直接的关系,但是它们拥有一些共同的东西,这样说吧,装饰者在装饰被装饰者的时候,它肯定是要能够装饰被装饰者,不能说把一些个不相干的装饰者硬往被装饰者上装饰,这样肯定就成了一种不伦不类的类了。比如说我拿石头去装饰米饭,那不是要人命吗?
在装饰者模式里面被装饰者是不需要经常变动的,而装饰者确是随时都有可能改变的。那么该如何应对装饰者的变呢?是什么意思呢,如果我想用绿叶装饰鲜花,但是过一段时间我又想把鲜花插入花瓶,
装饰者一定要有装饰对象的能力。
相关文章推荐
- 如何理解 IE 的文档兼容模式
- 关于如何理解TCP/IP协议栈的工作模式
- 更好的理解装饰设计模式和代理设计模式
- 如何加深对Servlet及其工作模式的理解
- 如何深入理解PhalApi框架三层结构Api+Domain+Model模式
- 快速理解设计模式之结构型设计模式(装饰模式)
- 设计模式,如何理解?
- 如何理解IIS 7的两种应用程序池的管道模式(Managed Pipeline Mode)
- python 装饰器模式 我的理解
- 如何理解 async 和await 设计模式 和如何应用到.net 4以下的framework
- [jvm解析系列][十四]动态代理和装饰模式,带你看源码深入理解装饰模式和动态代理的区别。
- 如何理解 iOS Delegate (委托)设计模式
- 对代理模式和装饰模式异同点的理解
- 程序员该如何管理后宫:和女生沟通的艺术(装饰模式)
- 装饰模式简单的理解
- python 装饰器模式 我的理解
- 如何理解原型模式中的深复制和浅复制
- 如何理解spring MVC模式
- 如何正确理解和使用Activity的4种启动模式