將某個對象的接口適配爲另外一個對象所指望的接口,adapter模式使本來因爲接口不兼容而不能一塊兒工做的類能夠一塊兒工做php
須要的東西在面前,但卻不能用,而短期又沒法改造它,因而就想辦法適配code
系統的數據和行爲都正確,但接口不符時,應該考慮使用適配器,目的是使控制範圍以外的一個原有對象與某個接口匹配。適配器模式只要應用於但願複用一些現存的類,但接口又與複用環境要求不一致的狀況對象
這是一種「亡羊補牢」的方法。接口
首選的方法應該是重構代碼,統一接口。ci
用於 兩個類功能相同或類似get
在項目中須要使用第三方組件時,經常使用到此模式io
過後控制不如事中控制,事中控制不如事前控制function
#原始類,用戶指望的接口 class Target{ public function connect(){ return "普通鏈接成功"; } } #須要被適配的類 class Adaptee{ public function specificConnect(){ reutrn "特殊鏈接成功"; } } #適配器 class Adapter extends Target{ private $Adaptee = new Adaptee(); public function connect (){ $Adaptee->SpecificConnect(); } } #***************客戶端**************** #適配前 $Target = new Target(); echo $Target->connect(); #適配後 $Target = new Adapter(); echo $Target->connect();