• 代理模式


    前言

      代理模式(Proxy),为其他对象提供一种代理以控制对这个对象得访问,这样可以隐藏一个对象存在于不同地址空间得事实。

    一、接口

      定义一个给妹子送花得接口,让代理类追求者类继承

    1     /// <summary>
    2     /// 送礼物接口
    3     /// </summary>
    4     public interface IGiveGift
    5     {
    6         void GiveFlowers();
    7     }

    二、被追求的妹妹类

      就一个妹妹的名字的字段

    1     public class Girl
    2     {
    3         public string Name { get; set; }
    4     }

    三、屌丝类

      1、继承送礼物接口类

      2、通过构造函数把要送花的妹子传进去

      3、实现接口,屌丝要给妹子送花了

     1     /// <summary>
     2     /// 追求者实现“送礼物”接口
     3     /// </summary>
     4     public class Pursuit : IGiveGift
     5     {
     6         Girl girl;
     7         public Pursuit(Girl girl)
     8         {
     9             this.girl = girl;
    10         }
    11         public void GiveFlowers()
    12         {
    13             Console.WriteLine(""+ girl.Name+" 送花");
    14         }
    15     }

    四、代理类

      1、代理类继承接口

      2、通过构造函数传入屌丝追求者类

      3、实现接口,并执行了追求者类的送花

     1     /// <summary>
     2     /// 代理类也实现送礼物接口
     3     /// </summary>
     4     public class Proxy : IGiveGift
     5     {
     6         Pursuit gg;
     7         public Proxy(Girl mm)
     8         {
     9             gg = new Pursuit(mm);
    10         }
    11         /// <summary>
    12         /// 实现追求者类得相关方法
    13         /// </summary>
    14         public void GiveFlowers()
    15         {
    16             gg.GiveFlowers();
    17         }
    18     }

    五、测试

      

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             Girl mm = new Girl();
     6             mm.Name = "小甜甜";
     7 
     8             Proxy p = new Proxy(mm);
     9             p.GiveFlowers();
    10             Console.ReadKey();
    11         }
    12     }

      打印结果:给 小甜甜 送花

    总结:

      1、远程代理,为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。

      2、虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真是对象。这样就可以达到性能的最优化。

      3、安全代理,用来控制真是对象访问时的权限。一般用于对象应该有不同的访问权限的时候。

      4、智能指引,指当调用真实的对象时,代理处理另外一些事。如计算真实对象的引用次数。

      参考书籍:大话设计模式

  • 相关阅读:
    [NOI2016] 网格
    [十二省联考2019]春节十二响
    wordcloud的方法参数归纳汇总
    选择困难症
    连通能力
    [Tjoi2017]城市
    bzoj3732 Network
    bzoj3252 攻略
    Noip2018旅行
    [HEOI2015]兔子与樱花
  • 原文地址:https://www.cnblogs.com/hyunbar/p/9843466.html
Copyright © 2020-2023  润新知