最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# 代理模式

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

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

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

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

Pursuit類是代表一個(gè)真實(shí)的事物(追求女孩的追求者),實(shí)現(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類的代表,實(shí)現(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接口,實(shí)現(xiàn)如下:

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

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

相關(guān)文章

最新評(píng)論

樟树市| 牡丹江市| 易门县| 水富县| 云和县| 鹿邑县| 贺州市| 古浪县| 桦南县| 五原县| 屯门区| 改则县| 左贡县| 丰顺县| 沅陵县| 敦化市| 桃园市| 松滋市| 唐海县| 巴青县| 漳平市| 广南县| 通化市| 潮安县| 出国| 咸丰县| 赤峰市| 东源县| 同江市| 德钦县| 镇赉县| 通城县| 高陵县| 章丘市| 平乐县| 广安市| 新竹市| 南涧| 沛县| 玉山县| 泗水县|