設計模式之介面卡模式

2021-07-10 04:16:28 字數 1075 閱讀 2185

介面卡模式(有時候也稱包裝樣式或者包裝)將乙個類的介面適配成使用者所期待的。乙個適配允許通常因為介面不相容而不能在一起工作的類工作在一起,做法是將類自己的介面包裹在乙個已存在的類中。

我們生活中常常聽到的是電源介面卡,它是用於電流變換(整流)的裝置。介面卡的存在,就是為了將已存在的東西(介面)轉換成適合我們的需要、能被我們所利用。在現實生活中,介面卡更多的是作為乙個中間層來實現這種轉換作用。

優點1、通過介面卡,客戶端可以呼叫同一介面,因而對客戶端來說是透明的。這樣做更簡單、更直接、更緊湊。

2、復用了現存的類,解決了現存類和復用環境要求不一致的問題。

3、將目標類和適配者類解耦,通過引入乙個介面卡類重用現有的適配者類,而無需修改原有**。

4、乙個物件介面卡可以把多個不同的適配者類適配到同乙個目標,也就是說,同乙個介面卡可以把適配者類和它的子類都適配到目標介面。缺點

1、對於物件介面卡來說,更換介面卡的實現過程比較複雜。

適用場景

1、系統需要使用現有的類,而這些類的介面不符合系統的介面。

2、想要建立乙個可以重用的類,用於與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的類一起工作。

3、兩個類所做的事情相同或相似,但是具有不同介面的時候。

4、舊的系統開發的類已經實現了一些功能,但是客戶端卻只能以另外介面的形式訪問,但我們不希望手動更改原有類的時候。

// adapter_test.cpp : 定義控制台應用程式的入口點。

//#include using namespace std;

//定義客戶端期待的介面

class cbird

virtual void fly() };

//定義需要適配的類

class cchicken

void fly() };

//定義介面卡

class cbirdadapter : public cbird

void fly()

private:

cchicken chicken;

};// 讓雞去模仿鳥的飛行

int main()

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式之 介面卡模式

1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...

設計模式之介面卡模式

介面卡模式定義 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。簡單定義 封裝物件,並提供不同的介面。簡單例子 鴨子介面 package headfirst.adapter.ducks public inte ce duck 具體鴨子 package headfi...