定義:函數
將一個類的接口轉換成客戶端須要的另一個接口;adapter模式使得本來因爲接口不兼容而不能一塊兒工做的類能一塊兒工做。spa
簡而言之就是中間件,將上游客戶端調用的接口和下游服務端提供的接口實施對接。中間件
結構圖:blog
代碼:接口
//Target,客戶端調用的接口ci
Class Targetget
{class
void Request()請求
}方法
//Adaptee。服務端提供的接口
class Adaptee
{
public void SpecificRequest)
{
。。。;
}
}
//Adatper,適配器,將服務端接口轉換成客戶端須要的接口
Class Adapter: Target
{
Adaptee* pAdaptee = new Adaptee();
public void Request()
{
return pAdaptee.SpecificRequest();
}
}
//客戶端
Target* pTarget= new Adapter();
pTarget.Request;//實際調用了服務端的請求函數
使用時機:
想使用一個既存的方法,可是它的接口和你要求的不一樣時;
要求接口格式封裝服務端或者第三方庫接口時;
優勢:
一、更好的複用性
二、解耦性
三、符合開放-關閉原則
缺點:過多的使用適配器,會讓系統很是零亂,不易總體進行把握