介面卡模式(adapter):將乙個類的介面轉換成客戶希望的另外乙個介面。介面卡模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
對於介面卡模式有兩種型別:類介面卡模式和物件介面卡模式
類介面卡模式:通過多重繼承對乙個介面和另乙個介面進行匹配,只有c++適合
物件介面卡模式
介面卡模式結構圖:
target類:這是客戶所期待的介面。目標可以是具體的或者抽象的類。
class target
public:
virtual void request()
cout<< 「普通請求!」
class adaptee
public:
void specificrequest()
cout<< 「特殊請求!」
class adapter : public target
private:
adaptee * adaptee = new adaptee();
public:
void request()
adaptee->specificrequest();
客戶端:
void main()
target * target = new adapter();
target->request();
何時使用介面卡模式
在想使用乙個已存在的類,但如果它的介面,也就是它的方法和你的要求不相同時,就應該考慮用介面卡模式
兩個類所做的事情相同或相似,但是具有不同的介面時要使用介面卡模式
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...
設計模式 介面卡模式(類介面卡和物件介面卡)
如果去歐洲國家去旅遊的話,他們的插座如下圖最左邊,是歐洲標準。而我們使用的插頭如下圖最右邊的。因此我們的膝上型電腦,手機在當地不能直接充電。所以就需要乙個插座轉換器,轉換器第1面插入當地的插座,第2麵供我們充電,這樣使得我們的插頭在當地能使用。生活中這樣的例子很多,手機充電器 將220v轉換為5v的...
介面卡模式 物件介面卡
介面卡模式 adapter 將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原來由於不相容而不能一起工作的那些類可以一起工作。介面卡模式主要應用於希望復用一些現存的類,但是介面又與復用環境要求不一致的情況。在gof的設計模式中,對介面卡模式講了兩種型別,類介面卡模式和物件介面卡模式...