久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      PHP 設(shè)計(jì)模式之適配器模式 | PHP 技術(shù)論壇

      PHP 設(shè)計(jì)模式之適配器模式 | PHP 技術(shù)論壇

      PHP設(shè)計(jì)模式之適配器模式

      1. 生活場(chǎng)景問(wèn)題引入:

      假如需要去國(guó)外旅游,游玩,現(xiàn)在電子產(chǎn)品很豐富,但是每個(gè)電子產(chǎn)品都是需要電源來(lái)做驅(qū)動(dòng),手機(jī),電腦,相機(jī)。。。但是又有一個(gè)很顯示的問(wèn)題,電子產(chǎn)品是
      很消耗電量的,電量沒(méi)有了,就需要充電,在我們國(guó)家,我們買的電子產(chǎn)品出場(chǎng)帶的電源充電器,一般都是220V的電壓,但是世界很大,每個(gè)國(guó)家的要求(規(guī)定)
      又是不同的,比如美國(guó)就是120V

      1. 原理:

      將一個(gè)類的接口轉(zhuǎn)換為另外一種接口,讓原本接口不兼容的類可以兼容。

      用戶調(diào)用適配器轉(zhuǎn)化出來(lái)的目標(biāo)接口方法,適配器再去調(diào)用被適配者的相關(guān)接口方法

      1. 好處:

      用戶是看不到被適配者,屬于解耦的操作

      1. 適配器模式屬于結(jié)構(gòu)型的設(shè)計(jì)模式

      2. 適配器模式的三種實(shí)現(xiàn)方式:

      一、 類適配器

      PHP 設(shè)計(jì)模式之適配器模式 | PHP 技術(shù)論壇

      根據(jù)上面的UML圖,我們可以看出,需要一個(gè)美國(guó)電壓的接口UsaInterface,一個(gè)適配器類Adapter,一個(gè)中國(guó)電壓的接口Chine,一個(gè)使用者Computer,
      在這里,中國(guó)電壓就是被適配者,美國(guó)電壓是最后的輸出(目標(biāo)),就是是配置者

      interface UsaInterface{     public function outPut5V();}class China{     private $voltage = 220;      public function outPut220V()     {         return $this->voltage;     }}class Adapter extends China implements UsaInterface{      public function outPut5V()     {         // TODO: Implement outPut5V() method.         $chinaVoltage = $this->outPut220V();          return $chinaVoltage / 2 + 10 . "V";     }}class Computer{     public function index(UsaInterface $usa)     {         if ($usa->outPut5V() === "120V") {             printf("可以在美國(guó)使用中國(guó)的電源插頭給電腦充電了");         } else {             printf("不可以在美國(guó)使用中國(guó)的電源插頭給電腦充電了");         }     }}class Client{     public function __construct()     {         $adapter = new Adapter();         $computer = new Computer();          $computer->index($adapter);     }}

      二、對(duì)象適配器模式

      對(duì)象適配器其實(shí)就是在類適配器的模式上做了一個(gè)調(diào)整,讓適配器類Adapter不去繼承被適配者的類,而是讓它們組合在一起,這樣就可以增加了使用的靈活
      度,也不會(huì)暴露被適配者的很多方法(使用關(guān)聯(lián)關(guān)系來(lái)代替繼承關(guān)系【合成復(fù)用原則】)。同時(shí),沒(méi)有繼承就沒(méi)有辦法去覆蓋父類的方法重寫(xiě)了,也算是有好有壞吧。如下:

      class Adapter implements UsaInterface{     protected $china;      public function __construct(China $china)     {         $this->china = $china;     }       public function outPut5V()     {         // TODO: Implement outPut5V() method.         $chinaVoltage = $this->china->outPut220V();          return $chinaVoltage / 2 + 10 . "V";     }}

      三、接口適配器(缺省適配器模式)

      當(dāng)不需要全部實(shí)現(xiàn)接口提供的方法時(shí),可以先設(shè)計(jì)一個(gè)抽象類實(shí)現(xiàn)接口,并為接口提供默認(rèn)的的空方法實(shí)現(xiàn),那么改抽象類的子方法就可以有選擇的覆蓋父類的某
      些方法來(lái)實(shí)現(xiàn)需求,(適用于一個(gè)接口不想使用所有的方法的情況)

      相關(guān)學(xué)習(xí)推薦:PHP編程從入門(mén)到精通

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)