介面卡模式是為了將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類可以一起工作。例如我們的手機充電口都是12v的,是不能直接接到我們的家庭電路上的,因為我們的家庭電路的電壓都是220v的,如果直接連線,可能會把手機給充爆了。這時候就需要乙個介面卡,也就是我們的充電器,他可以把從家庭電路**來的220v電壓轉換成12v之後再輸送給手機,這樣手機就可以安全的充電了。
優點:1、可以讓任何兩個沒有關聯的類一起執行。 2、提高了類的復用。 3、增加了類的透明度。 4、靈活性好。
缺點:1、過多地使用介面卡,會讓系統非常零亂,不易整體進行把握。比如,明明看到呼叫的是 a 介面,其實內部被適配成了 b 介面的實現,乙個系統如果太多出現這種情況,無異於一場災難。因此如果不是很有必要,可以不使用介面卡,而是直接對系統進行重構。
類圖如下:
示例**如下:
#include using namespace std;
/* 12v的電壓物件 */
class current12v
};/* 220v的家庭電路電壓物件 */
class current220v
};/* 220v電壓的介面卡 */
class adapter :public current220v
/* 將220v電壓的輸出轉換成12v的電壓輸出 */
virtual void useing220v()
private:
current12v* curr;
};int main()
執行結果如下: 介面卡模式(16)
今天我們來講一下介面卡模式。下面,我們描述乙個場景 不管是籃球隊還是足球隊,都會有外援的,在隊內訓練與安排戰術的時候,外援可能聽不懂漢語的,那麼,他們怎麼交流呢,這就需要乙個翻譯了。其實,這個翻譯就起到了乙個介面卡的效果。何為介面卡模式 將乙個介面轉換成為客戶希望的另外乙個介面,使得原本由於介面不相...
設計模式 16 介面卡模式
目錄 什麼是介面卡模式 為什麼要用介面卡模式 介面卡模式組成 將乙個類的介面轉換為呼叫方所能用的另一種介面,從而使得原本不適配的介面能適配呼叫,一起工作。這就是介面卡模式。往往很多情況下,因為雙方介面的不一致,現有系統可能無法運用新元件接入,而對現有的系統進行改造代價是昂貴的,從而需要對接入的新元件...
介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...