dp上的定義:介面卡模式將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類可以一起工作
。它包括類介面卡和物件介面卡,本文針對的是物件介面卡。舉個例子,在stl中就用到了介面卡模式。stl實現了一種資料結構,稱為雙端佇列(deque),支援前後兩段的插入與刪除。stl實現棧和佇列時,沒有從頭開始定義它們,而是直接使用雙端佇列實現的。這裡雙端佇列就扮演了介面卡的角色。佇列用到了它的後端插入,前端刪除。而棧用到了它的後端插入,後端刪除。假設棧和佇列都是一種順序容器,有兩種操作:壓入和彈出。
下面給出相應的uml圖,與dp上的圖差不多。
根據上面的uml圖,很容易給出實現。
[cpp]view plain
copy
print?
//雙端佇列
class deque
; //順序容器
class sequence
; //棧
class stack: public sequence
void pop()
private:
deque deque; //雙端佇列
};
//佇列
class queue: public sequence
void pop()
private:
deque deque; //雙端佇列
};
//雙端佇列
class deque
int main()
設計模式C 實現 介面卡模式
dp上的定義 介面卡模式將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類可以一起工作 它包括類介面卡和物件介面卡,本文針對的是物件介面卡。舉個例子,在stl中就用到了介面卡模式。stl實現了一種資料結構,稱為雙端佇列 deque 支援前後兩段的插入與刪除。st...
設計模式(三) 介面卡模式
目的 將乙個類的介面轉換成客戶希望的另外乙個介面。介面卡模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作.假設場景 以前的手機是有記憶體卡的,手機使用者把資料放在記憶體卡裡,手機是可以直接讀取記憶體卡中的資料的。但是後來這種用記憶體卡的手機慢慢被淘汰了,可是你又想讀取記憶體卡中的資料,於...
C 設計模式實現 介面卡
一 介面卡模式特點 介面卡模式主要解決的問題就是我們要呼叫的介面型別,無法滿足我們新系統的使用需求,這時候,我們需要將舊系統的介面,通過介面卡進行轉配,達到支援新介面呼叫的目的。對於這樣的要求,我們通過介面卡就可以完成,當然如果有多個介面需要轉配,那麼我們就需要為每乙個介面提供乙個介面卡去完成轉換的...