設計模式解析之介面卡模式

2021-09-13 02:31:27 字數 763 閱讀 9204

將各種截然不同的函式介面封裝成統一的api。 

php中的資料庫操作有mysql,mysqli,pdo三種,可以用介面卡模式統一成一致,使不同的資料庫操作,統一成一樣的api。類似的場景還有cache介面卡,可以將memcache,redis,file,apc等不同的快取函式,統一成一致。 

首先定義乙個介面(有幾個方法,以及相應的引數)。然後,有幾種不同的情況,就寫幾個類實現該介面。將完成相似功能的函式,統一成一致的方法。

<?php

namespace imooc;

//介面 idatabase

inte***ce idatabase

mysql

<?php

namespace imooc\database;

use imooc\idatabase;

class mysql implements idatabase

function query($sql)

function close()

}

mysqli

<?php

namespace imooc\database;

use imooc\idatabase;

class mysqli implements idatabase

function query($sql)

function close()

}

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式之 介面卡模式

1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...

設計模式之介面卡模式

介面卡模式定義 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。簡單定義 封裝物件,並提供不同的介面。簡單例子 鴨子介面 package headfirst.adapter.ducks public inte ce duck 具體鴨子 package headfi...