PHP設計模式(2)—— 介面卡模式
介面
我們先來看看介面的作用
interface Database{
public function connect();
public function query();
public function close();
}
class Mysql implements Database{
public function connect(){
//mysql 的邏輯
};
public function query(){
//mysql 的邏輯
};
public function close(){
//mysql 的邏輯
};
}
class Pdo implements Database{
public function connect(){
//Pdo 的邏輯
};
public function query(){
//Pdo 的邏輯
};
public function close(){
//Pdo 的邏輯
};
}
//使用
$database = new Mysql(); //切換資料庫只要改這一行就行了
$database->connect();
$database->query();
$database->close();
問題
有些第三方的 資料庫類並沒有按照我的介面來實現,而是有自己不同的方法,這個時候我們就需要有一個介面卡類,來先處理一下這個異類。 作用有點像把110v電源轉換成為220v(電源介面卡)。
//第三方資料庫類
class Oracle {
public function oracleConnect(){
//Oracle 的邏輯
};
public function oracleQuery(){
//Oracle 的邏輯
};
public function oracleClose(){
//Oracle 的邏輯
};
}
介面卡模式
$adaptee = new Oracle();
$adapter = new Adapter($adaptee);//只要改這個類就行了,後面的都可以不用改;
$database = $adapter;
$database->connect();
$database->query();
$database->close();
轉載出處
相關文章
- PHP 設計模式之介面卡模式PHP設計模式
- PHP設計模式-Adapter 介面卡模式PHP設計模式APT
- 【設計模式】介面卡模式設計模式
- 設計模式:介面卡模式設計模式
- 設計模式-介面卡模式設計模式
- 設計模式----介面卡模式設計模式
- 設計模式--介面卡模式/代理模式設計模式
- 設計模式(五):介面卡模式設計模式
- JavaScript 設計模式 —— 介面卡模式JavaScript設計模式
- java設計模式-介面卡模式Java設計模式
- 設計模式之【介面卡模式】設計模式
- 設計模式(七)介面卡模式設計模式
- python 設計模式-介面卡模式Python設計模式
- 設計模式之介面卡模式設計模式
- 初探Java設計模式2:結構型模式(代理模式,介面卡模式等)Java設計模式
- Java設計模式之介面卡設計模式Java設計模式
- Javascript 設計模式之介面卡模式JavaScript設計模式
- 極簡設計模式-介面卡模式設計模式
- 設計模式【6.1】-- 初探介面卡模式設計模式
- Java設計模式(6)----------介面卡模式Java設計模式
- 設計者模式之介面卡模式模式
- python設計模式之介面卡模式Python設計模式
- Java設計模式之介面卡模式Java設計模式
- Java 設計模式(一)《介面卡模式》Java設計模式
- 介面卡設計模式設計模式
- 設計模式 #4 (裝飾器模式、介面卡模式)設計模式
- Java設計模式之(八)——介面卡模式Java設計模式
- 設計模式【6.2】-- 再聊聊介面卡模式設計模式
- 設計模式之介面卡模式(adapter pattern)設計模式APT
- 設計模式第五講-介面卡模式設計模式
- 23種設計模式之介面卡模式設計模式
- 《設計模式》 - 5. 介面卡模式( Adapter )設計模式APT
- C#設計模式之介面卡模式C#設計模式
- PHP設計模式-代理模式PHP設計模式
- 設計模式之介面卡設計模式
- 設計模式(十)----結構型模式之介面卡模式設計模式
- PHP-介面卡模式PHP模式
- C#設計模式-介面卡模式(Adapter Pattern)C#設計模式APT