精髓

装饰器模式主要是为某个东西附加不同的功能,抽象装饰者和主题继承同一个类。如下例子:

有一块烧饼 (烧饼是主体)

  • 夹肉:变成肉夹馍 (夹肉的动作就是装饰)
  • 夹菜:变成菜夹馍 (夹菜的动作就是装饰)

其中菜,和肉作为不同的装饰,将馍变成不同口感的食物,抽象来说应继承同一个抽象类,它们都是具体的实现。
也可以认为:

  1. 主体可能只有一个
  2. 装饰可以有多个,装饰可以任意组合


装饰器的应用场景

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