类型:结构型模式。
类图:
参入者:
适用性:
概述:
装饰者模式是一种结构模式,表明装饰者模式主要是通过更改类的结构关系来实现的。Decorator与Model保持相同的接口,主要是为了保证操作Hairtician和Costumer时保持和操作Model时一样的体验。理论上来说,Decorator和Model不保持一样的接口,重新定义接口也是可以的。这里的装饰是一种链式的,即每一种新添加的装饰都是在之前的基本上生成新的类来完成的。新类在完成新添加的装饰之后,然后将接下来的动作返还到上一个装饰者。依次这样,达到链式完成装饰的功能。因为保持接口一致,在客户看来,其实是一致的,不影响客户的调用及体验。
示例代码:
与其他模式比较:装饰者模式其实与组合模式有一些类似的地方。都是通过组合的方法来实现添加新的模块。只是装饰者模式将产品独立出来,抽象出来装饰这个动作。而组合模式没有将产品与动作分开,组合模式的链条可以是像装饰者模式模式那样单一链条,也可是树形的,分出多个分支。
注意:
优缺点:
参考资料:
原文:http://blog.csdn.net/feihe0755/article/details/18456789