介面卡模式包含如下角色:
介面卡模式有物件介面卡和類介面卡兩種實現,但由於類介面卡模式通過多重繼承對乙個介面與另乙個介面進行匹配,而php並不支援多重繼承(儘管可以同時通過繼承類和介面的方式進行模擬多重繼承),也就是乙個類只有乙個父類,所以我們這裡實現的是物件介面卡。
/** * 介面卡模式
*///target:目標抽象類
class
target
}//adaptee:適配者類
class
adaptee
}//adapter:介面卡類
class
adapter
extends
target
public
function
request
()
}$a=new adapter();
$a->request();
string
'特殊請求' (length=12)
PHP設計模式系列 介面卡
介面卡設計模式只是將某個物件的介面適配為另乙個物件所期望的介面。假如我們原始的有乙個userinfo的類,提供使用者資訊的類,早起設計該類的時候,只實現了乙個getusername獲取使用者名稱的方法。我們的myoldobject類中,將從userinfo這個類中獲取使用者資訊,並且輸出使用者名稱 ...
設計模式系列 介面卡模式
見名知其意,介面卡可用於對多個不相容介面提供適配橋梁 介面卡模式屬於結構型模式。在現實世界中,這個模式適用的較為廣泛,比如 diy 一些電子產品,主要元器件提供的是標準介面,那麼無論我們購買什麼品牌的元器件,最終都能組裝起來正常執行。1 定義擴充套件介面和受支援的型別 public inte ce ...
PHP設計模式(介面卡模式)
設計動機 假如我們又這樣軟體系統,我們希望它能夠和乙個新的庫搭配使用,但是這個庫所提供的介面與我們的軟體系統不相容,我們不想改變現有 就能解決這個問題,怎麼辦?這個時候我們就需要將這個新的庫介面轉換成我們所需要的介面,這就是介面卡模式設計動機。模式定義 介面卡模式就是將乙個類的介面,轉換成客戶期望的...