又名包装模式,装饰器模式以客户端透明的方式扩展对象的功能。
装饰器模式使用原来被装饰的类的一个子类的实例,把客户端的调用委派到被装饰类。装饰器模式的关键在于这种扩展时完全透明的。
涉及到的角色
抽象构建角色:给出一个抽象接口,以规范准备接受附加责任的对象。
具体构建:定义一个将要接受附加责任的类。
装饰角色:持有一个构建对象的实例,并定义一个与抽象构件接口一致的接口。
具体装饰:负责给构件对象 贴上附加的责任。