什么是装饰模式:
装饰( Decorator )模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。
角色:
抽象组件角色: 一个抽象接口,是“被装饰类”和“装饰类”的父接口。
具体组件角色:为抽象组件的实现类。
抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口。
具体装饰角色:为抽象装饰角色的实现类。负责具体的装饰。
类图:
![](https://img2020.cnblogs.com/blog/977993/202003/977993-20200330213232856-1119664049.png)
如类图: Componect是抽象类或者接口,定义了通用的操作。 ConcreateComponent 是没有经过装饰的类。只实现了通用的操作。 Decorator 装饰者的最顶层父类。是一个抽象类。 需要注意的是: 1: 他持有一个Component,构造decorator的时候初始化。 2: 为了让Decorator能够修饰”具体组建角色“和”具体装饰器角色“。Decorator需要实现或者继承Component。