• 设计模式——代理模式


         代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。

         例子:小明喜欢隔壁班的小美,想送礼物给小美。但是怕小美不收,小明就叫同寝室并且与小美一个班的小戴代替他送礼物给小美。

    代理接口:

    1  interface IGiveGift
    2     {
    3         void GiveDolls();
    4         void GiveFilowers();
    5         void GiveChocolate();
    6     }

    被追求者:

    1 class SchoolGirl
    2     {
    3         private string name;
    4         public string Name { get; set; }
    5     }

    追求者:

     1  class Pursuit:IGiveGift
     2     {
     3         SchoolGirl mm;
     4         public Pursuit(SchoolGirl mm)
     5         {
     6             this.mm = mm;
     7         }
     8         public void GiveDolls()
     9         {
    10             Console.WriteLine(mm.Name + ",送你洋娃娃");
    11         }
    12 
    13         public void GiveFilowers()
    14         {
    15             Console.WriteLine(mm.Name + ",送你鲜花");
    16         }
    17 
    18         public void GiveChocolate()
    19         {
    20             Console.WriteLine(mm.Name + ",送你巧克力");
    21         }
    22     }

    代理者

     1   class Proxy:IGiveGift
     2     {
     3         Pursuit gg;
     4         public Proxy(SchoolGirl mm)
     5         {
     6             gg = new Pursuit(mm);
     7         }
     8 
     9         public void GiveDolls()
    10         {
    11             gg.GiveDolls();
    12         }
    13 
    14         public void GiveFilowers()
    15         {
    16             gg.GiveFilowers();
    17         }
    18 
    19         public void GiveChocolate()
    20         {
    21             gg.GiveChocolate();
    22         }
    23     }

    客户端

     1  static void Main(string[] args)
     2         {
     3             SchoolGirl jiaojiao = new SchoolGirl();
     4             jiaojiao.Name = "小美";
     5 
     6             Proxy daill = new Proxy(jiaojiao);
     7 
     8             daill.GiveDolls();
     9             daill.GiveFilowers();
    10             daill.GiveChocolate();
    11 
    12             Console.Read();
    13         }

    效果:

    代理模式结构图:

  • 相关阅读:
    5、视图
    4、数据更新
    3、聚合与排序
    2、查询基础
    1、数据库和SQL
    Day-13:组合查询
    Day-12:创建高级联结
    Day-11:联结表
    Day-10:使用子查询
    Day-9:分组数据
  • 原文地址:https://www.cnblogs.com/wugu-ren/p/6142633.html
Copyright © 2020-2023  润新知