装饰者模式 gaunthan Posted on Jan 16 2017 ? Design Patterns ? > **装饰者模式**(Decorator Pattern)动态地将责任附加到对象上。若要扩展原有功能,装饰者能够提供比继承更有弹性的替代方案。 <!--more--> ## 特点 - 装饰者和被装饰对象有相同的超类型。 - 可以用一个或多个装饰者包装一个对象。 - 在任何需要原始对象(包括被装饰的)的场合,都可以使用装饰过的对象代替它。 - 装饰者可以在委托被装饰者之前或之后加上自己的行为,以达到特定目的。 - 对象可以在任何时候被装饰。 ## 结构 装饰者模式可以用以下类图来表示:  从图中可以发现装饰者和被装饰者都是继承自同一个超类型的,同时装饰者还**拥有**(has)一个被装饰对象。 当对装饰者进行操作时,它会将这一操作委托给它所装饰的对象,然后再结合委托结果和自身的计算结果来完成操作。 ## References - 弗里曼弗里曼谢拉贝茨 O'ReillyTaiwan 公司 UMLChina. Head First 设计模式 [M]. 中国电力出版社, 2007. 赏 Wechat Pay Alipay 线性查找算法 Hash Table VS Red-Black Tree