简介
定义
装饰者模式是指在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能,他是通过创建一个包装对象,也就是装饰者来包裹真实的对象
动态的将责任附加到对象上,若要扩展功能,装饰者提供了有别于继承的另一种选择
装饰者组成结构
- 抽象组件 - 给出抽象接口或抽象类,以规范准备接收附加功能的对象
- 具体组件 - 定义将要接收附加功能的类
- 抽象装饰 - 装饰者共同要实现的功能
- 具体装饰 - 持有一个抽象组件对象,负责给构建对象贴上附加的功能
装饰者UML图
应用场景
需要扩展一个类的功能,或给一个类添加附加职责
需要动态的给一个类添加功能,这些功能可以在动态的撤销