1. 类别:对象结构型模式
2. 意图:动态给一个组件添加一些额外的职责,Decorator模式可以仅从外部改变组件,而组件无需对它的装饰有任何了解,即装饰对组件是透明的。
3. 结构:

4. 参与者:
l Component:定义一个对象接口,可以给这些对象动态透明地添加职责。
l ConcreteComponent:Component的实现类。
l Decorator:与Component接口一致的抽象类,并维持一个指向Component对象的指针。
l ConcreteDecortor:向组件添加额外的职责。
5. 协作:
l Decorator将请求转发给它的Component对象,并在转发前后执行附加的功能。
6. 适用性:
l 在不影响组件的情况下,以动态、透明的方式给单个对象添加职责。
l 处理那些可以撤销的职责。
l 组件有大量独立的扩展,不适合采用子类进行扩充时。
7. 已知应用:
l Java IO Streams:流链
l SiteMesh:用来在JSP中实现页面布局和装饰组件,能够较容易实现页面中动态内容和静态装饰外观的分离。
本文介绍装饰者模式,一种对象结构型设计模式,用于动态给对象添加职责而不改变其结构。适用于需要扩展对象功能但不通过继承实现的情况。文章探讨了模式的结构、参与者及其协作方式。





