介面卡模式:將乙個類的介面轉換成客戶希望的另外乙個介面。使得原本由於介面不相容而不能一起工作的那些類可以一起工作
現有如下情況:
int
main()
//第三個引數為乙個函式,觀察for_each的源**可以得知該函式僅可接受乙個引數
for_each
(v.begin()
, v.
end(),
???)
;}
需要的目標函式,該函式需要傳入兩個引數。
struct myprint
};
我們希望傳入的函式接收兩個引數,這不符合規定,所以需要介面卡!
定義目標介面,介面卡需要適配成什麼樣子,由for_each可知,該函式僅可接受乙個引數
class
target
;
寫介面卡,該介面卡繼承了目標介面,並實現目標函式的作用
class
adapter
:public target
public
: myprint print;
//乙個成員變數,該成員變數型別為我們所要實現的函式的類
};
此時,for_each的呼叫如下所示
for_each
(v.begin()
, v.
end(),
adapter()
);//執行結果
100101
102103
104105
106107
108109
設計模式之介面卡模式(類介面卡模式)
介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...
設計模式之介面卡模式 c
我們常用介面卡的作用是將220v交流電轉換為5a直流電,這樣就可以給手機充電了,如果在大美利堅旅行,那需要攜帶可以轉換110v交流電的介面卡 介面卡模式是最常用的模式之一,它的出現是為了讓使用者可以從不同的資料提供者處獲取自己想要的東西 常見的如在顯示 資料中間加入介面卡,這樣顯示部分的 可以無需考...
C 設計模式之介面卡模式
生活中的介面卡 買膝上型電腦,買手機時,都有乙個電源介面卡,電源介面卡又叫外接電源,是小型可攜式電子裝置及電子電器的供電電壓變換裝置,常見於手機,膝上型電腦上。它的作用是將家裡的220v高電壓轉換成這些電子產品能工作的5v 20v左右穩定的低電壓,使它們能正常工作。就是說,如果沒有這個電源介面卡,我...