国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

設計模式(12)---適配器模式

2019-11-14 16:20:36
字體:
來源:轉載
供稿:網友

一、定義

適配器模式:將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。

解釋:適配器模式好比一個電源適配器,生活中房間內的電壓是220v,但是你的很多用電器就不是220v,比如電腦、手機等等,這是需要電源適配器來調節電壓,使用電源適配器充電的過程就相當于適配器模式。

 

二、UML類圖、基本代碼

基本代碼:

class PRogram    {        static void Main(string[] args)        {            Target target = new Adapter();            target.Request();            Console.Read();        }    }    class Target    {        public virtual void Request()        {            Console.WriteLine("commom request");        }    }    class Adaptee    {        public void SpecificalRequest()        {            Console.WriteLine("specifical Request");        }    }    class Adapter : Target    {        private Adaptee adptee = new Adaptee();        public override void Request()        {            adptee.SpecificalRequest();        }    }

 

三、舉例說明

  國內電壓是220v,朋友從國外購買一家用電器的工作電壓是110v,這算是一個特殊需求。此時就需要電源適配器供電工作。代碼如下:

class Program    {        static void Main(string[] args)        {            China china = new Adapter();            china.Request();            Console.Read();        }    }    //國內供電    class China    {        public virtual void Request()        {            Console.WriteLine("the voltage is 220v");        }    }    //用電器供電特殊需求    class Foreign    {        public void SpecificalRequest()        {            Console.WriteLine("the voltage is 110v");        }    }    //電源適配器    class Adapter : China    {        private Foreign foreign = new Foreign();        public override void Request()        {            foreign.SpecificalRequest();        }    }
View Code

 

四、優缺點及適用場景

優點:

1)可以在不修改原有代碼的基礎上復用現有的類,很好的遵守“開閉原則”.

缺點:

針對基本代碼,重定義Adaptee的行為比較困難,這就需要生成Adaptee的子類并且使得Adapter引用這個子類而不是Adaptee本身。

 

適用場景:

系統需要復用現有類,而該類的接口不符合系統的需求。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长阳| 财经| 冷水江市| 南安市| 武平县| 图片| 社旗县| 永善县| 剑川县| 永州市| 柏乡县| 华容县| 怀安县| 潞城市| 上饶市| 公安县| 电白县| 桓台县| 江永县| 永嘉县| 清苑县| 伽师县| 孟津县| 三原县| 汕尾市| 和硕县| 区。| 长葛市| 常宁市| 古交市| 延津县| 余姚市| 五家渠市| 河津市| 三河市| 墨竹工卡县| 绩溪县| 当雄县| 通榆县| 五家渠市| 怀仁县|