亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

c# 代理模式

 更新時間:2012年10月29日 22:46:09   投稿:mdxy-dxy  
代理模式:為其他對象提供一種代理以控制其他對象的訪問

代理模式的應(yīng)用:

遠程代理,為一個對象在不同的地址空間提供局部代表,可以隱藏一個對象存在于不同地質(zhì)空間的事實。
虛擬代理,根據(jù)需要創(chuàng)建開銷很大的對象,通過代理來存放實例化需要很長時間的真實對象。
安全代理,用來控制真實對象的訪問權(quán)限。
智能代理,當調(diào)用代理時,可以代理處理一些額外的功能。
案例場景:
向一位自己心儀的女孩表達愛意,一般我們有兩種選擇:親自出馬(有自信的人)和 使用‘媒婆'(比較害羞)。
其中使用‘媒婆'就是代理行為,我們實現(xiàn)如下:

 調(diào)用代理模式的主函數(shù):

class Program
  {
    static void Main(string[] args)
    {
      SchoolGirl jiaojiao = new SchoolGirl();
      jiaojiao.Name = "李嬌嬌";
      //親自出馬
      IGiveGift self = new Pursuit(jiaojiao);
      self.GiveChocolate();//送巧克力
      self.GiveDolls();//送洋娃娃
      self.GiveFlowers();//送鮮花
      //使用‘媒婆'
      IGiveGift daili = new Proxy(jiaojiao);
      daili.GiveChocolate();//送巧克力
      daili.GiveDolls();//送洋娃娃
      daili.GiveFlowers();//送鮮花
      Console.ReadKey();
    }
  }

SchoolGirl類是代表女孩對象,實現(xiàn)如下:

public class SchoolGirl 
  {
    private string name;
    public string Name
    {
      get;
      set;
    }
  }

Pursuit類是代表一個真實的事物(追求女孩的追求者),實現(xiàn)如下:

public class Pursuit : IGiveGift
  {
    SchoolGirl mm;
    public Pursuit(SchoolGirl 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 + "送你巧克力");
    }
  }

Proxy類是Pursuit類的代表,實現(xiàn)如下:

public class Proxy : IGiveGift
  {
    Pursuit gg;
    public Proxy(SchoolGirl mm)
    {
      this.gg = new Pursuit(mm);
    }
    public void GiveDolls()
    {
      gg.GiveDolls();
    }
    public void GiveFlowers()
    {
      gg.GiveFlowers();
    }
    public void GiveChocolate()
    {
      gg.GiveChocolate();
    }
  }

Pursuit類和Proxy類都繼承IGiveGift接口,實現(xiàn)如下:

  interface IGiveGift
  {
    void GiveDolls();
    void GiveFlowers();
    void GiveChocolate();
  }

我們看一張代理模式的結(jié)構(gòu)圖:

相關(guān)文章

  • C# 中的 IReadOnlyDictionary 和 IReadOnlyList實例詳解

    C# 中的 IReadOnlyDictionary 和 IReadOnlyLis

    C# 中的IReadOnlyDictionary和IReadOnlyList是接口,用于表示只讀的字典和只讀的列表,這些接口提供了對集合的只讀訪問權(quán)限,即不允許對集合進行修改操作,這篇文章主要介紹了C# 中的 IReadOnlyDictionary 和 IReadOnlyList實例詳解,需要的朋友可以參考下
    2024-03-03
  • C#圖書管理系統(tǒng) 附源碼下載

    C#圖書管理系統(tǒng) 附源碼下載

    這篇文章主要為大家詳細介紹了C#圖書管理系統(tǒng),文章中附源碼下載,示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • C#利用Refit實現(xiàn)JWT自動續(xù)期詳解

    C#利用Refit實現(xiàn)JWT自動續(xù)期詳解

    Refit?是一個受到Square的Retrofit庫(Java)啟發(fā)的自動類型安全REST庫,這篇文章主要為大家介紹了C#如何利用Refit實現(xiàn)JWT自動續(xù)期,感興趣的可以了解下
    2023-08-08
  • C#數(shù)字圖象處理之膚色檢測的方法

    C#數(shù)字圖象處理之膚色檢測的方法

    這篇文章主要介紹了C#數(shù)字圖象處理之膚色檢測的方法,可實現(xiàn)針對膚色的檢測功能,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • c# wpf如何使用Blend工具繪制Control樣式

    c# wpf如何使用Blend工具繪制Control樣式

    這篇文章主要介紹了c# wpf如何使用Blend工具繪制Control樣式,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#使用DateAndTime.DateDiff實現(xiàn)計算年齡

    C#使用DateAndTime.DateDiff實現(xiàn)計算年齡

    這篇文章主要為大家詳細介紹了C#如何使用DateAndTime.DateDiff實現(xiàn)根據(jù)生日計算年齡,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2024-01-01
  • Unity中的Tilemap流程分析

    Unity中的Tilemap流程分析

    這篇文章給大家介紹Unity中的Tilemap流程分析,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-07-07
  • c# 獲得本地ip地址的三種方法

    c# 獲得本地ip地址的三種方法

    這篇文章主要介紹了c# 獲得本地ip地址的三種方法,幫助大家更好的理解和實用c#,感興趣的朋友可以了解下
    2020-12-12
  • 理解C#中的枚舉(簡明易懂)

    理解C#中的枚舉(簡明易懂)

    這篇文章主要介紹了理解C#中的枚舉(簡明易懂),本文講解了枚舉的優(yōu)點、枚舉說明、枚舉的類型、枚舉的使用建議等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • C#后臺接受前臺JSON字符串裝換成字典集合處理

    C#后臺接受前臺JSON字符串裝換成字典集合處理

    本文介紹C#利用Newtonsoft接收前端的JSON字符串,并解析反序列化成字典集合,對其進行處理。
    2016-04-04

最新評論