設計模式之裝飾器-AOP
阿新 • • 發佈:2020-10-08
HelloWorld簡單例子如下:此例子好好體會下繼承 is a和組合 has a的異同。
using System; using System.Runtime.InteropServices; namespace TestEnviroment { class Program { static void Main(string[] args) { BaseClass ins = new Ins(); ins = new Before(ins); ins = new After(ins); ins.Do(); Console.ReadLine(); } }public abstract class BaseClass { public abstract void Do(); } public class Ins : BaseClass { public override void Do() { Console.Write("World"); //底層行為 } } public abstract class BaseDecorator: BaseClass { public BaseClass baseClass;public BaseDecorator(BaseClass baseClass) { this.baseClass = baseClass; } } public class After : BaseDecorator { public After(BaseClass baseClass) : base(baseClass) { } public override void Do() { base.baseClass.Do(); Console.Write(" Jack"); //擴充套件區 } } public class Before: BaseDecorator { public Before(BaseClass baseClass) : base(baseClass) { } public override void Do() { Console.Write("Hello "); //擴充套件區 base.baseClass.Do(); } } }
下面是綜合例子: