介面卡模式:將乙個類的介面轉換成外部希望的另外乙個介面,使用原本不相容的而不能在一起工作的那些類可以在一起工作.介面卡就是乙個把擁有相似功能但是介面名不同的類封裝成擁有同樣介面名的類,這樣只需要更改介面引入的類,但不需要改變類中的方法,就可以換成另乙個相同功能不同類名和方法名.
如:資料庫操作有mysql,mysqli,pdo三種
memcache,redis,file,apc等不同的快取函式
步驟:1.定義乙個介面:規定方法與引數
2.有幾個要實現的類,就寫幾個類繼承該介面
介面 idatabase
<?php
namespace test;
inte***ce idatabase
mysql類
<?php
namespace test\database;
use test\idatabase;
class mysql implements idatabase
function query($sql)
function close()
}
mysqli類
<?php
namespace test\database;
use test\idatabase;
class mysqli implements idatabase
function query($sql)
function close()
}
這樣在之後的呼叫,只需要使用介面上規定的方法就行,可以在mysql和mysqli中簡單互換,不需要改方法名和引數這些,實現了**的解耦. php設計模式之介面卡模式
借鑑 適用性 原理 將要用到的角色分為以下幾種 target最早實現的介面,adaptee改善之後的介面,adapter對target和adapter進行適配,client呼叫介面 類介面卡模式 author mtg 目標角色 version 1.0 class target 目標點 public ...
PHP設計模式之介面卡模式
php設計模式之介面卡模式 1 介面卡模式的概念 介面卡設計模式只是將某個物件的介面適配為另乙個物件所期待的介面。2 uml靜態模型 3 單例模式舉例 今天從網路上爬了一些資料,爬下來的內容如下 所示,該內容在另一頁面直接顯示,這裡的爬蟲 就不寫了,只寫乙個模擬的效果。address 山東威海農副產...
PHP設計模式之 介面卡模式
介面卡要完成的功能很明確,引用現有介面的方法實現新的介面的方法。你的介面不改的話,我就利用現有介面和你對接一下吧。開 閉 原則,乙個軟體實體應當對擴充套件開放,對修改關閉 class toy describe 原有的介面 author nick abstract class toy class do...