1. 程式人生 > 實用技巧 >設計模式之裝飾器-AOP

設計模式之裝飾器-AOP

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(); } } }

下面是綜合例子: