將乙個類的介面轉換成客戶希望的另乙個介面。介面卡模式讓那些介面不相容的類可以一起工作。(物件介面卡(一繼承一組合)、類介面卡(多繼承)不推薦使用)
在軟體構建過程中,由於應用環境的變化,常常需要把一些現存的物件放在新的環境中使用,但是新的環境要求的介面是現存物件所滿足不了的。
抽象目標類(target)(新的介面或者類)
定義乙個客戶所需的介面,可以是乙個抽象類或介面,也可以是具體類
介面卡類(adapter)
它可以呼叫另乙個介面,作為乙個轉換器,對adaptee和targer進行組合,適配,它是介面卡模式的核心
適配者類(adaptee)(老的介面或者類)
即被適配的角色,它定義了乙個已經存在的介面,這個介面需要適配,適配者類,有客戶需要的方法或者實現
比如qq會員,各種會員型別,黃磚、黑磚、綠磚、紅磚、紫磚、粉磚,不同會員標識,可享受不同的待遇和福利,可以擁有不同的權利,幹不同的事。
//目標介面類,
class target
;//介面卡類
class adapter : public target
virtual ~adapter();
void newprocess()
protected:
private:
adaptee* padaptee; //組合適配者
};//適配者類,提供舊的介面
class adaptee
protected:
private:
};
demo:
int main()
結果:
1:將目標類和介面卡類解耦,通過引入乙個介面卡類來重用現有的適配者類,無需修改原有結構
2.:增加了類的 透明性和復用性,將具體的業務實現過程封裝在介面卡中,對於客戶端類而言是透明的,而且提高了適配者的復用性,兩全其美,同一適配者類可以在多個不同的系統中復用
3:靈活性和高擴充套件性都非常好,在不修改原有的**基礎上,選擇介面卡來擴充套件業務需要,完全符合開閉原則
1:一次只能適配乙個適配者類,不能同時適配多個適配者
2:適配者類不能為最終類
3:目標抽象類只能為介面,不能為類,使用有一定的侷限性
adapter模式主要用於「希望復用一些現存的類,但是介面又與復用環境要求不一致的情況」,在遺留**復用、類庫遷移等方面非常有用
java設計模式6 介面卡模式
介面卡 就是講以有的類通過介面卡轉化為我們需要的型別。介面卡起到了中間作用 如圖所示,介面卡的作用就像是充電器一樣 手機充電需要的是5v電壓,但是家裡插座出來的電壓220v 手機介面卡就是將其轉換為5v的過程 public class mobile 提供5v電壓的乙個介面 author zhy pu...
6 設計模式之介面卡模式
將一類介面轉換成另乙個類介面,使得原本具有相關性但不相容的兩個介面,可以可以在一起工作。生活中常見的介面卡就是手機充電器了 家裡的220v電源插座可以視作乙個介面,同時usb資料線也可視作乙個介面,這兩個介面具有相關性,但他們不相容,因為usb資料線需要乙個5v的輸入,但插座是220v的,因此我們就...
c 設計模式 6 介面卡模式
介面卡模式 adapter pattern 是作為兩個不相容的介面之間的橋梁。這種型別的設計模式屬於結構型模式,它結合了兩個獨立介面的功能。這種模式涉及到乙個單一的類,該類負責加入獨立的或不相容的介面功能。舉個真實的例子,讀卡器是作為記憶體卡和筆記本之間的介面卡。您將記憶體卡插入讀卡器,再將讀卡器插...