装饰模式(精简介绍)

装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
装饰模式中的4个角色有:
(1)抽象构件(Component)类:给出一个抽象接口,以规范准备接收附加责任的对象。
(2)具体构件(Concrete Component)类:定义一个将要接收附加责任的类。
(3)抽象装饰(Decorator)类:持有一个构件(Component)对象的实例,并实现一个与抽象构件接口一致的接口。
(4)具体装饰(Concrete Decorator)类:负责给构件对象添加上附加的责任。
类图如下:
装饰模式(精简介绍)
补充:
装饰模式和适配器模式都是“包装模式”,它们都是通过封装其他对象达到设计的目的的。但是,适配器类的接口会比被装饰的目标类接口宽