說明ide
1.創建抽象組件this
2.創建抽象裝飾着者繼承於抽象組件並在構造器聚合抽象組件spa
3.具體裝飾者繼承抽象裝飾者和具體組件繼承抽象組件,達到在一個具體組件上層增長不少個具體的具體裝飾者,給這個具體組件動態的附加不少功能code
public abstract class AbsComponent { public abstract void Exc(); } public abstract class AbsDecorator:AbsComponent { protected AbsComponent absComponent; public AbsDecorator(AbsComponent absComponent) { this.absComponent = absComponent; } public override void Exc() { if(absComponent!=null) { absComponent.Exc(); } } } class Component : AbsComponent { public override void Exc() { Console.WriteLine("執行Component完成"); } } class DecoratorA : AbsDecorator { public DecoratorA(AbsComponent absComponent) : base(absComponent) { } public override void Exc() { Console.WriteLine("DecoratorA執行完成"); base.Exc(); } } class DecoratorB : AbsDecorator { public DecoratorB(AbsComponent absComponent) : base(absComponent) { } public override void Exc() { Console.WriteLine("正在配置DecoratorB"); Console.WriteLine("DecoratorB執行完成"); base.Exc(); } } new DecoratorA(new DecoratorB(new Component())).Exc();