装饰器模式-说明

模式定义

定义:增长一个修饰类包裹原来的类,包裹的方式通常是经过在将原来的对象做为修饰类的构造函数的参数。装饰类实现新的功能,可是,在不须要用到新功能的地方,它能够直接调用原来的类中的方法。修饰类必须和原来的类有相同的接口
类型:结构型模式
类图

clipboard.png

模式结构

原始类: 抽象接口,真实对象和装饰对象具备相同的接口,以便动态的添加职责
继承类A :具体的对象。
装饰器基类:装饰类,继承了Component,从外类来扩展Component类的功能,而且持有一个构建引用,进行请求转发
装饰类A/B:具体装饰类,用于给实际对象添加职责。函数

优势/缺点

优势
  • 装饰类和被装饰类都只关心自身的核心业务,实现了解耦。
  • 方便动态的扩展功能,且提供了比继承更多的灵活性。
缺点
  • 若是功能扩展过多,势必产生大量的类。
  • 多层装饰比较复杂。
适用场景
  • 扩展一个类的功能。
  • 动态添加功能,动态撤销。
相关文章
相关标签/搜索