真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#如何解析適配器設(shè)計(jì)模式

這篇文章將為大家詳細(xì)講解有關(guān)C#如何解析適配器設(shè)計(jì)模式,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

公司主營業(yè)務(wù):網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出未央免費(fèi)做網(wǎng)站回饋大家。

今天看到一個(gè)園子里的朋友寫了一篇ASP.NET的適配器設(shè)計(jì)模式的文章。其中提到了把輸入的電壓轉(zhuǎn)換成燈泡適合的電壓,這樣才能使燈泡正常工作。正巧,我也在學(xué)習(xí)設(shè)計(jì)模式,其中翻看了一下秦小波寫的《設(shè)計(jì)模式與禪》這本書,其中提到了設(shè)計(jì)模式的定義為:

將一個(gè)類的接口變成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個(gè)類能夠一起工作。

適配器模式又叫變壓器模式,也叫包裝模式。

我們知道,中國的電壓是220V,而日本的電壓為110V,我們中國生產(chǎn)的電燈泡一般額定電壓為220V,如果想要這個(gè)燈泡在日本能夠正常工作就必須使用一個(gè)適配器,把110V電壓轉(zhuǎn)換成220V電壓。這里作者舉得例子并沒有實(shí)現(xiàn)把一個(gè)接口或類轉(zhuǎn)換到另外一個(gè)可以使用的類,僅僅是把輸入?yún)?shù)做了判斷,這是不是適配器模式我不予置評,下面貼出我實(shí)現(xiàn)的適配器模式。

定義接口代碼如下:

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;   namespace HelloWorld  {      ///       /// 中國電接口      ///       public interface IChinaElectricity      {          ///           /// 電壓          ///           ///           int Voltage();      }      ///       /// 日本電接口      ///       public interface IJapanElectricity      {          ///           /// 電壓          ///           ///           int Voltage();      }      ///       /// 燈接口      ///       public interface IChinaLight      {          ///           /// 發(fā)光          ///           ///           string Light(int voltage);      }  }

定義的類如下:

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;   namespace HelloWorld  {      public class ChinaElectricity : IChinaElectricity      {          public int Voltage()          {              return 220;          }      }       public class JapanElectricity : IJapanElectricity      {          public int Voltage()          {              return 110;          }      }       public class ChinaLight : IChinaLight      {          ///           /// 發(fā)光          ///           ///           public string Light(int voltage)          {              if (voltage == 220)              {                  return "我發(fā)光啦....";              }              else             {                  return ("電壓不正確,無法正常工作...");              }          }      }      ///       /// 定義一個(gè)電壓適配器      ///       public class ElectricityAdapter : IChinaElectricity      {          private int voltage = 0;          private IJapanElectricity iJElectricity = null;                    public ElectricityAdapter(IJapanElectricity _baseElectricity)          {              iJElectricity = _baseElectricity;              voltage = this.iJElectricity.Voltage();          }          public int Voltage()          {              return voltage + 110;          }      }  }

這里面我們定義了一個(gè)適配器的類,把日本電壓適配成中國電壓,這樣才能夠使燈泡正常工作。代碼如下:

static void Main(string[] args)          {               //初始化一個(gè)中國電燈              IChinaLight iCLight = new ChinaLight();              //初始化中國的電              IChinaElectricity iCElectricity = new ChinaElectricity();              //初始化日本電              IJapanElectricity iJElectricity =new JapanElectricity();               //使用適配器              IChinaElectricity iCAElectricity = new ElectricityAdapter(iJElectricity);               //電壓正確電燈發(fā)光              Console.WriteLine(iCLight.Light(iCElectricity.Voltage()));               //使用電壓適配器進(jìn)行適配              Console.WriteLine(iCLight.Light(iCAElectricity.Voltage()));               //電壓不正確,電燈產(chǎn)生異常              Console.WriteLine(iCLight.Light(iJElectricity.Voltage()));                        }

通過適配器模式的定義可以知道,其實(shí)適配器模式無非是把一種已經(jīng)無法修改,或是修改成本較高的源角色通過適配角色轉(zhuǎn)換成目標(biāo)角色,這樣整個(gè)業(yè)務(wù)體系才能夠在代價(jià)最小的情況下進(jìn)行正常運(yùn)行。

適配器模式的優(yōu)點(diǎn):

適配器模式可以讓兩個(gè)沒有任何關(guān)系的類在一起運(yùn)行,只要適配器這個(gè)角色能夠搞定他們就行。

  • 增加了類的透明性。

  • 提高了類的復(fù)用度。

  • 靈活性非常好。

適配器模式的使用場景:

適配器應(yīng)用場景只要記住一點(diǎn)就足夠了:你有動(dòng)機(jī)修改一個(gè)已經(jīng)投產(chǎn)中的接口時(shí),適配器模式可能是最適合你的模式。比如系統(tǒng)擴(kuò)展了,只需要一個(gè)已有或新建立的類,但這個(gè)類又不符合系統(tǒng)的接口,這個(gè)時(shí)候使用適配器模式比修改已存在的類代價(jià)要小的多。

關(guān)于C#如何解析適配器設(shè)計(jì)模式就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)站標(biāo)題:C#如何解析適配器設(shè)計(jì)模式
文章位置:http://weahome.cn/article/gchehj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部