適配器模式是將一個類的接口,轉換成客戶指望的另外一個接口,使得原來由於接口不兼容的類可以在一塊兒工做。 spa
它由下面四個組件構成: 對象
一般狀況下,將被適配者的類做爲對象組合在適配器Adapter類中,同時,適配器Adapter類實現了目標接口Target,完成修改目標接口,包裝被適配者。 blog
採用組合方式的適配器稱爲對象適配器。把被適配者做爲一個對象組合到適配器類中,以修改目標接口包裝被適配者。 繼承
採用繼承方式的適配器稱爲類適配器。經過多重繼承不兼容接口,實現對目標接口的匹配,單一的爲某個類實現適配。代碼可重用性低。 接口
固然,適配器模式也有變體,例以下面的例子: get
用一個抽象的適配器類來實現目標類的接口,具體的適配器繼承了該抽象適配器。有兩個具體的類impl1和impl2實現了被適配者的接口。這樣具體的適配器就能適配者兩個類了。 im
經過適配器,客戶端能夠調用同一接口,於是對客戶端是透明的,這樣更加的簡單透明,直接。 客戶端
複用的現存的類,解決了現存類與複用環境要求不一致的問題。 margin
將目標類與被適配者類解耦,經過引入一個適配器類重用現存的一個被適配者類,無需修改原來的代碼。db