1、装饰者模式的一般应用场景:
当系统增加新的功能,需要给类增加新的功能,而这些新的功能又主要是为了修饰原来类中的核心职责或者功能,也就是说,这些新的功能是用来修饰的,而且这些用来修饰的功能是在满足某一个特定情境下才会有需要执行的,这个时候就需要用到 装饰者模式。
2、装饰者模式的构成
(1)抽象构件(Component),这是一个抽象的对象接口,可以给这个对象动态的添加职责。
(2)具体构件(ConcreteComponent),这是一个具体的对象,也可以给这个对象添加职责。(有时候可以不需要component)
(3)装饰角色(Decortor),装饰抽象类,继承了component,从外类扩展component的功能。
(4)具体装饰角色(ConcreteDecortor),具体的装饰对象,就是给component添加的新功能。
3、实现:
(1)装饰对象和真实对象有相同的接口
(2)装饰对象中包含一个真实对象的应用