大话设计模式-装饰模式
装饰模式 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰模式结构演示 组件类:Component Component是定义一个对象接口,可以给这些对象动态地添加职责。 abstract class Component{ public abstract void Operation(); } 具体组件类:ConcreteComponent ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。 class ConcreteComponent : Component{ public override void Operation() => Console.WriteLine("具体对象的操作"); } 装饰抽象类:Decorator 继承了Component,从外类来扩展Component类的功能,但对于Component来说是无需知道Decorator的存在的。 abstract class Decorator:Component{ protected Component component; //设置组件 public void SetComponent(Component component) => this.component = component; //重写方法为调用组件的原方法 public