国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP設(shè)計模式(十):適配器模式

paney129 / 591人閱讀

摘要:原文地址設(shè)計模式十適配器模式在設(shè)計模式七設(shè)計模式分類中我們提到過結(jié)構(gòu)設(shè)計模式,結(jié)構(gòu)設(shè)計模式專注于設(shè)計對象和實例的構(gòu)建組合過程。適配器模式在不修改現(xiàn)有代碼的基礎(chǔ)上,保留了架構(gòu)。

原文地址:PHP設(shè)計模式(十):適配器模式

Introduction

在PHP設(shè)計模式(七):設(shè)計模式分類中我們提到過結(jié)構(gòu)設(shè)計模式(Structural patterns),結(jié)構(gòu)設(shè)計模式專注于設(shè)計對象(Object)和實例(Instance)的構(gòu)建、組合過程。
結(jié)構(gòu)設(shè)計模式包括下面七種設(shè)計模式:

適配器(Adapter)

橋接(Bridge)

合成(Composite)

裝飾(Decorator)

外部(Facade)

輕量(Flyweight)

代理(Proxy)

請無視拗口的中文翻譯。結(jié)構(gòu)設(shè)計模式著重于低耦合、高復(fù)用、高可維護(hù)性、高拓展性的設(shè)計原則。

適配器模式

適配器模式是一種利用適配器將現(xiàn)有的實現(xiàn),適配到已有接口的設(shè)計模式,最常見的例子就是變壓器,將已有的5V輸入的電器,通過變壓器,適配到220V的電源插座。
適配器模式利用PHP設(shè)計模式(四):繼承中我們提到過的繼承(inheritance),以及PHP設(shè)計模式(六):MVC中我們提到過的組件(composition)來進(jìn)行模式設(shè)計。
相比繼承,組件可用性高,低耦合,冗余度低,因此推薦采用組件的模式來進(jìn)行設(shè)計。

何時使用適配器模式?

簡單來說,當(dāng)你的實現(xiàn)和需要的接口,都無法修改的時候。
例如,你需要給甲方已有的系統(tǒng)做標(biāo)準(zhǔn)的兼容,標(biāo)準(zhǔn)不可修改,甲方的系統(tǒng)也不可修改,這個時候你就需要適配器的設(shè)計模式了。
對于web編程來說,將你現(xiàn)有的實現(xiàn),和三方庫結(jié)合起來,就需要使用適配器模式。

使用繼承的適配器模式

簡單來說,就是:

還是用前面的鯨魚和鯉魚的例子來說明如何使用適配器,假設(shè)我們已經(jīng)實現(xiàn)了鯨魚類和鯉魚類:

name = "Whale";
  }
  public function eatFish() {
    echo "Whale eat fish.
";
  }
}
class Carp {
  public function __construct() {
    $this->name = "Carp";
  }
  public function eatMoss() {
    echo "Carp eat moss.
";
  }
}
?>

假設(shè)我們現(xiàn)在需要建一個動物館,有eatFish()和eatMoss()接口,動物館接口如下:

但是我們不能修改Whale和Carp類,這里就需要使用適配器了,創(chuàng)建兩個適配器:

name = "Whale";
  }
  public function eatMoss() {
    echo "Whale don"t eat moss.
";
  }
}
class CarpAdapter extends Carp implements Animal {
  public function __construct() {
    $this->name = "Carp";
  }
  public function eatFish() {
    echo "Carp don"t eat moss.
";
  }
}
?>

然后是調(diào)用代碼:

eatFish();
$whaleAdapter->eatMoss();
$carpAdapter = new CarpAdapter();
$carpAdapter->eatMoss();
$carpAdapter->eatFish();
?>

運(yùn)行一下:

Whale eat fish.
Whale don"t eat moss.
Carp eat moss.
Carp don"t eat moss.
使用組件的適配器模式

還是使用鯨魚和鯉魚的例子,不過這個時候適配器變成了:

name = "Whale";
    $this->whale = new Whale();
  }
  public function eatFish() {
    $this->whale->eatFish();
  }
  public function eatMoss() {
    echo "Whale don"t eat moss.
";
  }
}
class CarpAdapter implements Animal {
  public function __construct() {
    $this->name = "Carp";
    $this->carp = new Carp();
  }
  public function eatFish() {
    echo "Carp don"t eat moss.
";
  }
  public function eatMoss() {
    $this->carp->eatMoss();
  }
}
?>

其他的地方和使用繼承的適配器模式一樣,這里不再贅述。

Summary

適配器模式在不修改現(xiàn)有代碼的基礎(chǔ)上,保留了架構(gòu)。使用繼承的適配器和使用組件的適配器各有利弊,繼承的類冗余度/空間復(fù)雜度偏高,組件的調(diào)用棧/時間復(fù)雜度偏高,應(yīng)該結(jié)合實際情況選擇。

(本文出自csprojectedu.com,轉(zhuǎn)載請注明出處)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21716.html

相關(guān)文章

  • php設(shè)計模式

    摘要:我們今天也來做一個萬能遙控器設(shè)計模式適配器模式將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。今天要介紹的仍然是創(chuàng)建型設(shè)計模式的一種建造者模式。設(shè)計模式的理論知識固然重要,但 計算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進(jìn)行操作,第二類是返回一個容器接口對象,上節(jié)我們介紹了...

    Dionysus_go 評論0 收藏0
  • php設(shè)計模式

    摘要:我們今天也來做一個萬能遙控器設(shè)計模式適配器模式將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。今天要介紹的仍然是創(chuàng)建型設(shè)計模式的一種建造者模式。設(shè)計模式的理論知識固然重要,但 計算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進(jìn)行操作,第二類是返回一個容器接口對象,上節(jié)我們介紹了...

    vspiders 評論0 收藏0
  • PHP基礎(chǔ)

    摘要:分別為適配器模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式,享元模式。設(shè)計模式五適配器模式適配器模式將某個對象的接生成器和協(xié)程的實現(xiàn)在這篇文章中,作者針對那些比較難以理解的概念,以一個更為通俗的方式去講明白。。 PHP 源碼注解 PHP 的詳細(xì)源碼注解 PHP 字符串操作整理 一些有關(guān)字符串的常用操作。 Redis 常見七種使用場景 (PHP 實戰(zhàn)) 這篇文章主要介紹利用 R...

    HtmlCssJs 評論0 收藏0
  • JS 設(shè)計模式 配器模式

    摘要:適配器模式是指將一個接口轉(zhuǎn)換成客戶端希望的另外一個接口,該模式使得原本不兼容的類可以一起工作。適配器有種角色目標(biāo)抽象角色定義客戶所期待的使用接口。接口源角色需要被適配的接口。接口適配器角色把源接口轉(zhuǎn)換成符合要求的目標(biāo)接口的設(shè)備。 適配器模式 是指將一個接口轉(zhuǎn)換成客戶端希望的另外一個接口,該模式使得原本不兼容的類可以一起工作。舉個例子:macbook pro有一個HDMI接口,一條HDM...

    mochixuan 評論0 收藏0
  • PHP設(shè)計模式(七)配器模式(Adapter For PHP

    摘要:適配器模式將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類可以在一起工作。如下待適配對象電子書翻頁電子書打開客戶端測試輸出結(jié)果電子書打開電子書翻頁 適配器模式:將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類可以在一起工作。 showImg(https://segmentfault.com/img/bVbi...

    silvertheo 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<