亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#學習筆記之適配器模式詳解

2019-10-29 21:07:10
字體:
來源:轉載
供稿:網友

什么是適配器模式?

   適配器模式(Adapter):將一個類的接口轉換成客戶希望的另外一個接口。

   Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。

什么時候運用適配器模式?

   在想使用一個已經存在的類時,如果它的接口,也就是它的方法與我們當前的要求不相同時,就需要考慮用到適配器模式了。

   一般而言,使用適配器模式是出于無奈之舉,一般存在于軟件開發后期或者維護期,在軟件設計階段,我們還是盡量避免該模式的使用。

適配器模式的組成

    Target:目標接口,也就是客戶所期待的接口。目標可以是具體的或者抽象的類,也可以是接口。

  Adpatee:需要適配的類。也就是我們需要與目標接口對接成功的類。

  Adapter:中間起到鏈接作用的類。通過在內部包裝一個Adptee對象,將源接口轉換成目標接口。

適配器模式具體實現

適配器模式的結構

C#,適配器模式

適配器模式的實現

Target類:也就是目標類

class Target{  public virtual void Request()  {     Console.WriteLine("普通請求");   }}

Adaptee類:需要適配的類

class Adaptee{   public void SpecificRequest()   {     Console.WriteLine("特殊請求");   }}

Adapter類:

class Aapter : Target{    private Adaptee adaptee = new Adaptee();   /// <summary>   /// 這樣就可以把表面調用Request()方法變成實際調用SpecificRequest()   /// </summary>   public override void Request()   {     adaptee.SpecificRequest();   }}

主函數調用:

static void Main(string[] args){    //對客戶端來說,調用的是Target的Request()    Target target = new Aapter();    target.Request();    Console.Read();}

實例解析

   為了深化理解,我們準備一個具體的實例來分析。

   姚明作為一個外籍的球員在進入NBA初期,由于英文水平一般,常常聽不懂教練的指揮與安排,需要翻譯來全程跟隨以實現溝通。請就此來寫出具體的情況。

 分析:

   在這里,我們不難發現教練的指揮與安排就是Target,姚明就是Adaptee,而翻譯就理所當然成了Adapter,那么我們就能分析出彼此的關系了。

C#,適配器模式

具體實現:

 

class Program  {    static void Main(string[] args)    {      Player b = new Forwards("A");      b.Attack();      Player m = new Guards("B");      m.Attack();            //通過翻譯,姚明知道了需要做的事情      Player ym = new Translator("姚明");      ym.Attack();      ym.Defense();      Console.Read();    }    abstract class Player    {      protected string name;      public Player(string name)      {        this.name = name;      }      public abstract void Attack();      public abstract void Defense();    }    /// <summary>    /// 前鋒    /// </summary>    class Forwards : Player    {      public Forwards(string name) : base(name)      {      }      public override void Attack()      {        Console.WriteLine("前鋒{0} 進攻", name);      }      public override void Defense()      {        Console.WriteLine("前鋒{0} 防守", name);      }    }    /// <summary>    /// 中鋒    /// </summary>    class Center : Player    {      public Center(string name) : base(name)      {      }      public override void Attack()      {        Console.WriteLine("中鋒{0} 進攻", name);      }      public override void Defense()      {        Console.WriteLine("中鋒{0} 防守", name);      }    }    /// <summary>    /// 后衛    /// </summary>    class Guards : Player    {      public Guards(string name) : base(name)      {      }      public override void Attack()      {        Console.WriteLine("后衛{0} 進攻", name);      }      public override void Defense()      {        Console.WriteLine("后衛{0} 防守", name);      }    }    /// <summary>    /// 翻譯是繼承于運動員的,因為他需要直接理解教練的意思    /// 但是他實際需要傳達的是外籍球員,所以他調用的是外籍球員所理解的方法=>也就是翻譯的作用    /// </summary>    class Translator : Player    {      private ForeignCenter fc = new ForeignCenter();      public Translator(string name) : base(name)      {        fc.Name = name;      }      public override void Attack()      {        fc.進攻();      }      public override void Defense()      {        fc.防守();      }    }    /// <summary>    /// 作為外籍球員,他有自己的姓名和進攻防守方式等    /// 其他的事情交給翻譯就好了    /// </summary>    class ForeignCenter    {      private string name;      public string Name      {        get { return name; }        set { name = value; }      }      public void 進攻()      {        Console.WriteLine("外籍中鋒{0} 進攻", name);      }      public void 防守()      {        Console.WriteLine("外籍中鋒{0} 防守", name);      }    }  }

適配器模式的優缺點

   像之前提到的適配器能在后期維護的時候起到很大的作用,能在開發新的功能的時候保護原來軟件的穩定性,但是初期的時候還是能避免就盡量避免吧!

備注:文中所有代碼及知識點均來自于《大話設計模式》,本人屬于邊學邊看邊敲代碼邊總結的階段。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品va| 欧美成人剧情片在线观看| 亚洲第一精品夜夜躁人人爽| 少妇精69xxtheporn| 亚洲aa在线观看| 日韩av在线网| 亚洲精品美女久久久久| 日韩av免费在线观看| 亚洲第一福利视频| 日韩av在线高清| 中文字幕日本欧美| 日韩亚洲欧美中文在线| 国产精品高潮呻吟久久av野狼| 国产精品一区二区三区久久久| 精品国产户外野外| 91亚洲精品一区| 性视频1819p久久| 97精品一区二区视频在线观看| 国产精品久久久亚洲| 91国自产精品中文字幕亚洲| 欧美一级黄色网| 亚洲视频一区二区三区| 91亚洲va在线va天堂va国| 欧美黄色www| 日韩av第一页| 18性欧美xxxⅹ性满足| 欧美激情一二三| 精品国产乱码久久久久久虫虫漫画| 欧美大肥婆大肥bbbbb| 亚洲精品一区二区三区不| 欧美不卡视频一区发布| 色在人av网站天堂精品| 日韩成人在线视频| 九九热最新视频//这里只有精品| 国产成人精品视频在线观看| 久久精品国产久精国产一老狼| 久久影视电视剧免费网站清宫辞电视| 成人黄色在线观看| 国产视频久久网| 亚洲热线99精品视频| 岛国精品视频在线播放| 一区二区三区四区视频| 麻豆国产va免费精品高清在线| 欧美日韩国产色视频| 日韩中文字幕网站| 亚洲一区二区三区乱码aⅴ| 亚洲天堂男人天堂| 久久男人资源视频| 久热精品视频在线观看一区| 美女精品久久久| 日韩天堂在线视频| 欧美性猛交xxxx乱大交极品| 欧美精品在线观看| 国产91成人video| 欧美激情极品视频| 92国产精品视频| 91日本在线观看| 91丨九色丨国产在线| 亚洲国产日韩欧美在线99| 色黄久久久久久| 92看片淫黄大片看国产片| 最近2019免费中文字幕视频三| 亚洲成人激情图| 国产午夜精品理论片a级探花| 亚洲电影免费观看高清完整版在线观看| 久久天天躁狠狠躁夜夜躁2014| 91精品视频免费观看| 91精品国产99久久久久久| 日韩视频免费观看| 庆余年2免费日韩剧观看大牛| 亚洲欧美三级伦理| 蜜臀久久99精品久久久无需会员| 亚洲人成自拍网站| 亚洲国产精品久久久久久| 日本精品视频网站| 国产精品视频网站| 亚洲欧美日韩中文在线| 欧美日韩精品在线观看| 国产午夜精品全部视频在线播放| 2019中文字幕在线观看| 欧美在线日韩在线| 欧美极品少妇xxxxⅹ免费视频| 亚洲视频axxx| 亚洲国产第一页| 日本不卡视频在线播放| www.久久草.com| 日韩成人av在线| 欧美一级视频免费在线观看| 亚洲欧洲高清在线| 国产欧美一区二区三区视频| 亚洲精品国精品久久99热| 国产成人精品久久| 久久免费精品日本久久中文字幕| 久久精品免费播放| 亚洲欧洲xxxx| 91丨九色丨国产在线| 欧美日韩精品在线观看| 中文欧美日本在线资源| 欧美极品欧美精品欧美视频| 亚洲色图第三页| 久久精品99国产精品酒店日本| 97超级碰碰人国产在线观看| 亚洲精品456在线播放狼人| 亚洲欧美日韩一区在线| 欧美一级片一区| 日韩电影第一页| 亚洲第一区第一页| 不卡av电影院| 亚洲欧美www| 在线观看欧美www| 性欧美暴力猛交69hd| 欧美性xxxx极品hd满灌| 国产日韩在线一区| 日韩精品一区二区三区第95| 中文字幕亚洲综合| 这里精品视频免费| 成人福利网站在线观看| 欧美性xxxxxx| 欧美日韩在线一区| 欧美在线www| 欧美日韩国产综合视频在线观看中文| 久久久久久国产三级电影| 色阁综合伊人av| 91视频免费网站| 91精品国产免费久久久久久| 久久亚洲一区二区三区四区五区高| 久久久日本电影| 2023亚洲男人天堂| 亚洲欧美一区二区三区在线| 国产欧美日韩专区发布| 久久精品国产成人| 欧美高清视频免费观看| 日韩av一区二区在线| 欧美成人免费va影院高清| 亚洲精品国产精品国产自| 在线精品播放av| 国产精品毛片a∨一区二区三区|国| 97精品久久久| 欧美视频一二三| 欧美大尺度激情区在线播放| 欧美视频在线观看 亚洲欧| 成人观看高清在线观看免费| 久久精品国产99国产精品澳门| 热re91久久精品国99热蜜臀| 国产欧美久久久久久| 久久久91精品国产一区不卡| 日韩精品免费在线播放| 亚洲成人中文字幕| 日韩激情第一页| 91精品视频在线播放| 亚洲自拍偷拍视频| 91精品国产高清自在线| 国产日本欧美视频| 欧美日本亚洲视频| 在线午夜精品自拍| 国产精品普通话| 欧美成人精品三级在线观看| 欧美激情视频在线观看| 亚洲国产精品人人爽夜夜爽| 欧美激情一区二区久久久| 欧美电影在线观看| 亲爱的老师9免费观看全集电视剧| 久久亚洲精品一区二区| 精品一区二区亚洲|