(200-07-16) C#.NET 代理模式 Proxy Pattern

摘要:(200-07-16) C#.NET 代理模式 Proxy Pattern

使用方式:一般使用在 Method 的穿插稽核 不去修改去執行的類別 額是新增一個poxry 去管理cspattern.rar

Proxy

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace cspattern
{
    //代理類別 
   public class HelloProxy:IHello
    {
       //Data Field
        private IHello _hello;

        public IHello Hello
        {
           
            set { _hello = value; }
        }
        #region IHello 成員

       

        public string Message
        {
            set {
                this._hello.Message = value;
             
            }
            
        }

        #endregion

        #region IHello 成員

        public string getHello()
        {
            //設定稽核程序 
            System.Console.WriteLine("稽核!!");
            return this._hello.getHello();
        }

        #endregion
    }

}

類別

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace cspattern
{
    public class TWHello : cspattern.IHello
    {
        //Data Field
        private String _message;

        public String Message
        {
            set
            {
                _message = value;
            }

        }
        //講英文打招呼功能
        public String getHello()
        {
            return _message + " 世界和平!!";

        }
        //屬性

    }
}

主程式

 

   //寫死型別
            TWHello tw = new TWHello();
            tw.Message = "eric";
            MessageBox.Show(tw.getHello());
            //建立代理
            IHello proxy = new HelloProxy();
            ((HelloProxy)proxy).Hello = tw;
            MessageBox.Show(proxy.getHello());

介面
 

 

using System;
namespace cspattern
{
   public interface IHello
    {
        string getHello();
        string Message { set; }
    }
}