C 設計模式實現 介面卡

2021-06-14 02:30:31 字數 1463 閱讀 3179

一、介面卡模式特點:

介面卡模式主要解決的問題就是我們要呼叫的介面型別,無法滿足我們新系統的使用需求,這時候,我們需要將舊系統的介面,通過介面卡進行轉配,達到支援新介面呼叫的目的。對於這樣的要求,我們通過介面卡就可以完成,當然如果有多個介面需要轉配,那麼我們就需要為每乙個介面提供乙個介面卡去完成轉換的工作。具體的呼叫過程,我們可以進行相應的封裝。達到比較通用的方式去呼叫介面卡,完成適配服務。

二、要點:

1.adapter模式主要應用於「希望復用一些現存的類,但是介面又與復用環境要求不一致的情況」,在遺留**復用、類庫遷移等方面非常有用。

2.adapter模式有物件介面卡和類介面卡兩種形式的實現結構,但是類介面卡採用「多繼承」的實現方式,帶來了不良的高耦合,所以一般不推薦使用。物件介面卡採用「物件組合」的方式,更符合松耦合精神。

三、適用場景:

系統需要使用現有的類,而此類的介面不符合系統的需要。

注:介面卡模式不適合在系統設計階段採用,沒有乙個系統分析師會在做詳設的時候考慮使用介面卡模式,這個模式使用的主要場景是擴充套件應用中。系統擴充套件了,不符合原有設計的時候才考慮通過介面卡模式減少**修改帶來的風險。

四、c++實現

1、類介面卡

#include #include //介面卡基類

class ctarget;};

//舊系統介面

class cadapee

};//介面卡類(繼承方式)

class cadaper : public ctarget, public cadapee

};//呼叫者

int main(int argc, char **argv)

2、對像介面卡

#include #include //介面卡基類

class ctarget;};

//舊系統介面

class cadapee

};//介面卡類(組合方式)

class cadaper : public ctarget

private:

cadapee m_adapee;

};//呼叫者

int main(int argc, char **argv)

設計模式 介面卡 C 實現

介面卡模式 將乙個類的介面轉換成客戶需要的另外乙個介面,是的原本由於介面不相容而不能一起工作的那些類可以一起工作。場景 想使用乙個類但是它的介面不符合要求。編寫乙個計算器的程式,介面已經定義好了,有加法和乘法。在這之前已經寫好了乙個關於計算加法的類,你想復用這個加法類。但是規定的介面有兩個除了加法之...

設計模式C 實現 介面卡模式

dp上的定義 介面卡模式將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類可以一起工作 它包括類介面卡和物件介面卡,本文針對的是物件介面卡。舉個例子,在stl中就用到了介面卡模式。stl實現了一種資料結構,稱為雙端佇列 deque 支援前後兩段的插入與刪除。st...

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...