1.定義
? ? 將一個接口轉(zhuǎn)換成客戶希望的另一個接口解恰,適配器模式使接口不兼容的那些類可以一起工作送淆,其別名為包裝器(Wrapper)
2.類適配器模式
? ? 類適配器的定義:類的適配器模式把適配的類的API轉(zhuǎn)換成為目標(biāo)類的API
Target:通過接口的形式讓adapter去實(shí)現(xiàn)它备韧,在實(shí)現(xiàn)的過程中聲明兩個方法
Adaptee這個類并沒有sampleOperation2這個方法揩局,現(xiàn)在的場景就是我們需要sampleOperation2這個方法,為了能讓客戶端用到這個方法同時(shí)又能使用Adaptee這個類廉沮,所以提供了適配器中間的一個環(huán)節(jié)就是Adapter類。通過這個類可以把Target和Adaptee連接起來徐矩,Adapter與Adaptee是繼承關(guān)系滞时。這就是類適配器的特點(diǎn)。
類適配器使用對象繼承的方式滤灯,是靜態(tài)的定義方式坪稽;
對于類適配器,適配器可以重定義Adaptee的部分行為鳞骤;
對于類適配器窒百,僅僅引入了一個對象,并不需要額外的引用來間接得到Adaptee豫尽;
對于類適配器贝咙,由于適配器直接繼承了Adaptee,使得適配器不能和Adaptee的子類一起工作拂募。
3.對象適配器模式
? ? 類的適配器和對象適配器本質(zhì)上是一樣的庭猩,但是在UML結(jié)構(gòu)圖還有代碼還有些不同窟她。
1.對象適配器定義:與類的適配器模式一樣,對象的適配器模式把被適配的類的API轉(zhuǎn)換成為目標(biāo)類的API蔼水,與類的適配器模式不同的是震糖,對象的適配器模式不是使用繼承關(guān)系連接到Adaptee類,而是使用委托關(guān)系連接到Adaptee類趴腋。
對象適配器使用對象組合的方式吊说,是動態(tài)組合的方式;
對于對象適配器优炬,一個適配器可以把多種不同的源適配到同一個目標(biāo)颁井;
對于對象適配器,要重定義Adaptee的行為比較困難蠢护;
對于對象適配器雅宾,需要額外的引用來間接得到Adaptee。