1. 程式人生 > >2018/12/8《大話設計模式》【介面卡模式】

2018/12/8《大話設計模式》【介面卡模式】

 

週六上班,心痛的趕腳~

 

1:什麼是介面卡?

  - 小李要去美國旅遊了,到了之後發現,美國插座電壓是 250V 的,自己的國產手機插上去肯定時不行的,這時小李有三種辦法解決這個問題

    1:強烈抗議美國沒有 220V插座,要求美國必須在每個插座旁邊在安裝一個 220V插座。

    2:自己在美國再買個手機,可以用 250V充電的那種。

    3:買個轉接頭,可以把美國 250V的電壓適配成 220V的。

  - 你要選了 1,2 ,對不起,打擾了

  - 通過上面的例子,引出了介面卡的定義

  - 介面卡模式(Adapter),將一個類的介面換成客戶端希望的另一個介面

,Adapter 使得原本介面不相容而不能在一起的類可以一起工作

  - 通俗的說,就是我希望可以通過這個介面訪問另一個介面,使得這兩個介面可以提供一套服務

 

2:介面卡的使用場景

  - 使用別人的外掛,程式碼,服務,這時就需要適配器,以防止其他人的改變導致自己的服務崩潰。

  - 使用一個已經存在的類,但是你的要求和類不太相同時,應該考慮使用。

  - 其實介面卡大是多數更是一種無奈之舉,產品的開發本身就是會改變的。

  - 也就是說,使用原則是,在雙方都不太容易修改的時候使用介面卡

 

3:介面卡的實現

  - 根據上面我們瞭解到,介面卡需要三個角色,被適配物件,適配者,介面卡

  - 這裡我們先寫一個被適配物件

class operation1
{
    public function operation(){
        echo '我是需要適配的物件,我的方法不太好改';
    }
}

  - 介面卡

class Adapter
{
    public function operation()
    {
        $operation1 = new operation1();
        $operation1->operation();
    }
}

  - 適配者

$Adapter = new
Adapter(); $Adapter->operation();

  - 這裡我們訪問的 Adapter 其實是 operation1 ,這裡適配了 operation

 

4:地址

  github