精髓
装饰器模式主要是为某个东西附加不同的功能,抽象装饰者和主题继承同一个类。如下例子:
有一块烧饼 (烧饼是主体)
- 夹肉:变成肉夹馍 (夹肉的动作就是装饰)
- 夹菜:变成菜夹馍 (夹菜的动作就是装饰)
其中菜,和肉作为不同的装饰,将馍变成不同口感的食物,抽象来说馍和肉、菜应继承同一个抽象类,它们都是具体的实现。
也可以认为:
- 主体可能只有一个
- 装饰可以有多个,装饰可以任意组合

装饰器的应用场景
- 需要对现有类附加职责,但又不想以继承方式扩充时
- 需要对现有的一组基本功能进行排列组合而产生非常多的功能时
- 当对象的功能需要动态的添加、撤销时
文档更新时间: 2024-01-02 03:52 作者:admin