代理模式uml圖

  poxypattern  


    //先產生一個Interface 用來實作方法
    interface IGiyeGift {
        void GiveDolls();
        void GiveFlowers();
        void GiveChoclate();
    }
    //實作一個資料內容
    class schoolGirl {
        private string name;
        public string NameSet {
            get { return name;}
            set {name = value;}
        }
    }
    //被代理人的類別
    class pursit : IGiyeGift
    {
        schoolGirl mm;
        public pursit(schoolGirl dd)
        {
            this.mm = dd;
        }
        
        public void GiveDolls()
        {
            Console.WriteLine(this.mm.NameSet+"TestDolls");
        }
        
        public void GiveFlowers()
        {
            Console.WriteLine(this.mm.NameSet + "Flowers");
        }
        
        public void GiveChoclate()
        {
            Console.WriteLine(this.mm.NameSet + "TestCholate");
        }
    }
    //代理人的類別項目
    class Proxy : IGiyeGift
    {
        pursit mm;
        public Proxy(schoolGirl MM)
        {
            this.mm = new pursit(MM);
        }
        public void GiveDolls()
        {
            mm.GiveDolls();        
        }
        public void GiveFlowers()
        {
            mm.GiveFlowers();
        }
        public void GiveChoclate()
        {
            mm.GiveChoclate();
        }
    
    }
    /// <summary>
    /// 主程式用來產生主要項目, 透過代理人
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            schoolGirl DDa = new schoolGirl();
            DDa.NameSet = "王國權 ";
            Proxy Pxy = new Proxy(DDa);
            Pxy.GiveDolls();
            Pxy.GiveFlowers();
            Pxy.GiveChoclate();
            Console.ReadLine();
        }
    }

 

要點:
    1. [代理者]與[被代理者]繼承同一介面(具有相同方法)
    2. [代理者]內部New一個[被代理者]的Class, 取代原本[被代理者]的內容與資料
    3. 只要針對[代理者]進行操作即可

作用:
    遠端代理。隱藏一個物件存在於不同位址空間的事實。(ex .NET 的 WebService 應用)。
    虛擬代理。用來存放實體化需要很長時間的真實物件。(ex 圖片載入在慢慢出來)。
    安全代理。控制真實物件存取的權限。
    參考代理。當調用真實物件時,代理可以計算真實物件被參考的次數,或是真實物件正在使用,請下個使用者稍待。


 

 

 

參考網址:

http://sourcemaking.com/design_patterns/proxy

http://www.dotblogs.com.tw/atowngit/archive/2010/03/09/13956.aspx

arrow
arrow
    文章標籤
    Proxy Pattern Design Pattern
    全站熱搜

    斷了線的小木偶 發表在 痞客邦 留言(0) 人氣()