一、为什么要使用装饰模式呢?
使用装饰模式要达到这样一个目的,给某一个类附加一些额外的功能,也就是说做一些功能扩展,但是又不改变类原有的功能。
二、什么是装饰模式呢?
通过上面的理解,我们可以得出一个结论,装饰模式是动态的扩展一个对象的功能,而不需要改变原始类代码的一种成熟模式。
三、装饰者与被装饰者
装饰者与被装饰者是没有直接的关系,但是它们拥有一些共同的东西,这样说吧,装饰者在装饰被装饰者的时候,它肯定是要能够装饰被装饰者,不能说把一些个不相干的装饰者硬往被装饰者上装饰,这样肯定就成了一种不伦不类的类了。比如说我拿石头去装饰米饭,那不是要人命吗?
在装饰者模式里面被装饰者是不需要经常变动的,而装饰者确是随时都有可能改变的。那么该如何应对装饰者的变呢?是什么意思呢,如果我想用绿叶装饰鲜花,但是过一段时间我又想把鲜花插入花瓶,装饰者一定要有装饰对象的能力。