装饰器模式 (Decorator Pattern)
装饰器模式 (Decorator Pattern) 是一种结构型设计模式,它动态地给一个对象添加一些额外的职责,就增加功能来说,装饰器模式相比生成子类更为灵活。
一、基础
1 意图
-
动态地给一个对象添加一些额外的职责。
-
就增加功能来说,装饰器模式相比生成子类更为灵活。
2 适用场景
-
当需要扩展一个类的功能,或给一个类增加附加功能时。
-
当需要动态地给一个对象增加功能,这些功能可以再动态地撤销时。
-
当需要为一批兄弟类进行改装或加装功能时。
3 结构
- 抽象组件(Component):定义了具体组件和装饰器的共同接口,客户端通过该接口与具体组件和装饰器进行交互。它可以是抽象类或接口。
- 具体组件(ConcreteComponent):实现了抽象组件接口,是被装饰的原始对象,它定义了对象的基本功能。
- 抽象装饰器(Decorator):继承或实现抽象组件接口,并且持有一个指向抽象组件对象的引用。它的主要作用是为具体装饰器提供统一的接口,在其实现的方法中,通