C#中增强类功能的几种方式详解

2020-01-05 10:14:17刘景俊

装饰者模式

装饰者模式指在不改变原类定义及继承关系的情况跟下,动态的拓展一个类的功能,就是利用创建一个包装类(wrapper)来装饰(decorator)一个已有的类。

包含角色:

被装饰者:

  • Component 抽象被装饰者,
  • ConcreteComponent 具体被装饰者,Component的实现,在装饰者模式中装饰的就是这货。

    装饰者:

    • Decorator 装饰者 一般是一个抽象类并且作为Component的子类,Decorator必然会有一个成员变量用来存储Component的实例
    • ConcreateDecorator 具体装饰者 Decorator的实现

      在装饰者模式中必然会有一个最基本,最核心,最原始的接口或抽象类充当component和decorator的抽象组件

      实现要点:

      • 定义一个类或接口,并且让装饰者及被装饰者的都继承或实现这个类或接口
      • 装饰者中必须持有被装饰者的引用