码迷,mamicode.com
首页 > Windows程序 > 详细

(C#)代理模式

时间:2015-08-05 12:15:20      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

1.代理模式

  为其他对象提供代理以控制对这个对象的访问。

  1. 远程代理:为一个对象在不同的地址空间提供举报代表。这样可以隐藏一个对象在不同地址空间的事实。
  2. 虚拟代理:是依据需要创建开销很大的对象。通过它来存放实例化需要长时间的真是对象。
  3. 安全代理:用来控制真实对象的访问时的权限。
  4. 智能代理:指当调用真实对象时,代理处理另外一些事。

2.实例

namespace 代理模式
{
    class Program
    {
        static void Main(string[] args)
        {
            GirlMM mm = new GirlMM();
            mm.Name = "夏花";

            Proxy proxy = new Proxy(mm);

            proxy.GiveDolls();
            proxy.GiveFlowers();
            proxy.GiveChocolate();

            Console.ReadLine();
        }
    }

    /// <summary>
    /// 被代理对象执行的操作接口
    /// </summary>
    interface IGiveGift
    {
        void GiveDolls();
        void GiveFlowers();
        void GiveChocolate();
    }

    /// <summary>
    /// 被代理者希望代理执行操作的类
    /// </summary>
    class GirlMM
    {
        private string name;
        public string Name
        {
            get { return name; }
            set {name = value;}
        }
    }

    /// <summary>
    /// 被代理者
    /// </summary>
    class Pursuit: IGiveGift
    {
        GirlMM mm;  
        public Pursuit(GirlMM mm)
        {
            this.mm = mm;
        }

        public void GiveDolls()
        {
            Console.WriteLine(mm.Name+"送你洋娃娃");
        }
        public void GiveFlowers()
        {
            Console.WriteLine(mm.Name + "送你鲜花");
        }
        public void GiveChocolate()
        {
            Console.WriteLine(mm.Name + "送你巧克力");
        }
    }

    class Proxy:IGiveGift
    {
        Pursuit gg;

        public Proxy(GirlMM mm)
        {
            gg = new Pursuit(mm);

        }

        public void GiveDolls()
        {
            gg.GiveDolls();
        }
        public void GiveFlowers()
        {
            gg.GiveFlowers();
        }
        public void GiveChocolate()
        {
            gg.GiveChocolate();
        }
    }
}

 

(C#)代理模式

标签:

原文地址:http://www.cnblogs.com/Firepad-magic/p/4704049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!