梗概

  • 即一种上层封装
  • 用于附加功能,接口不变

适用范围

特点

  • 不影响原来的对象的内部结构,只是在外面做了一层包装,外部直接调用这层包装
  • 给原来的对象附加上某些功能
  • 一般而言,是将接口A同样封装为接口A

优点

  • 扩展一个类的功能。动态增加功能,动态撤销
  • 与原来的对象不会互相耦合互相独立

缺点

  • 多层装饰比较复杂。

场景

  • 在不想增加很多子类的情况下扩展类。
  • 可代替继承。