(本部落格旨在個人總結回顧)
介面卡模式:將乙個類介面轉為換客戶希望的另乙個介面。adapter模式使得由於介面不相容的不能一起工作的那些類可以一起工作。
使用場景:主要應用於希望復用一些現存的類,但是介面又與復用環境要求不一致的情況。
說明:根據使用場景可以推斷出介面卡模式一般不是在軟體設計初期設計的,而是在後期為了解決介面不相容的情況,(不相容可能第三方介面或者由於其他原因導致介面不相容)。在特殊的情況下也有可能軟體設計初期就這樣設計,在使用第三方介面的情況下,而第三方介面本身設計的問題,根據這些介面設計反而導致軟體邏輯不清晰和不好維護等問題。
優點:①解決介面不相容問題。②提高類的復用和透明度。③靈活性好
缺點:過多使用介面卡,導致系統非常零亂,不易整體進行把握。
客戶希望轉換成的目標介面(或類)
target.h
#pragma once
class target
;
target.cpp
#include "stdafx.h"
#include "target.h"
target::target()
target::~target()
void target::operation()
不相容的介面或類:
sdkinte***ce.h
#pragma once
class sdkinte***ce
;
sdkinte***ce.cpp
#include "stdafx.h"
#include "sdkinte***ce.h"
sdkinte***ce::sdkinte***ce()
sdkinte***ce::~sdkinte***ce()
void sdkinte***ce::sdkoperation()
介面卡類:
adapter.h
#pragma once
#include "target.h"
#include "sdkinte***ce.h"
class adapter :
public target
;
adaper.cpp
#include "stdafx.h"
#include "adapter.h"
adapter::adapter():m_psdkinte***ce(null)
adapter::~adapter()
}void adapter::operation()
預編譯標頭檔案:
stdaft.h
// stdafx.h : 標準系統包含檔案的包含檔案,
// 或是經常使用但不常更改的
// 特定於專案的包含檔案
//#pragma once
#include "targetver.h"
#include #include #include using namespace std;
// todo: 在此處引用程式需要的其他標頭檔案
呼叫**:
adaperpatternmemo.cpp
// adapterpatternmemo.cpp : 定義控制台應用程式的入口點。
C 實現介面卡模式
概述 介面卡模式是一種結構性模式,它將乙個類的介面轉換成客戶需要的介面,使得原來由於介面不相容而不能一起工作的類可以一起工作 優點 可以讓沒有關聯的兩個類一起執行 提高了類的復用性 缺點 過多介面卡系統會比較亂,系統的維護性變差 使用場景 當想使用已經存在的類,但是這個類的介面不符合客戶需求 uml...
介面卡模式C 實現
介面卡模式 將乙個類的介面轉換成客戶希望的另乙個介面。介面卡模式讓那些介面不相容的類可以一起工作 結構 客戶端使用的target類需要使用乙個已經存在的介面adaptee類,可以用兩種方法實現 1 構造adapter類繼承target類,並實現adaptee介面 介面卡模式的類版本 2 將乙個ada...
介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...