zoukankan      html  css  js  c++  java
  • (C#)代理模式

    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();
            }
        }
    }
    点赞鼓励下,(づ ̄3 ̄)づ╭❤~

    作者:君莫笑
           出处:https://www.cnblogs.com/Firepad-magic/
           Unity最受欢迎插件推荐:点击查看
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    hive metastore && hiveserver2 . 基本配置
    Flink HA 搭建坑
    protobuf 编译安装
    编译Hadoop 2.7.2支持压缩 转
    centos 6挂载磁盘
    python
    python之面向对象(一)
    python
    python-文件压缩和解压
    python-configparser模块
  • 原文地址:https://www.cnblogs.com/Firepad-magic/p/4704049.html
Copyright © 2011-2022 走看看