在軟體系統中,由於應用環境的變化,常常需要將「一些現存的物件」,放在新的環境中使用,但是新環境要求的介面是這些現存物件所不滿足的。
如何應對這種「遷移的變化」?如何既能利用現有物件的良好實現,同時又能滿足新的應用環境所要求的介面?
將乙個類的介面轉換成客戶希望的另乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
//目標介面(新介面)
class
itarget
;//遺留介面(老介面)
class
iadaptee
;//遺留型別
class
oldclass
:public iadaptee
;class
adapter
:public itarget
virtual
void
process()
};intmain()
在stl庫中也有用到mediator,例如stack和queue都是dequeue適配過來的,底層都是呼叫dequeue的介面實現。但是stack和queue都是介面+實現所以感覺它底層的適配。
class
stack
;class
queue
;
以上內容**於李建忠老師的c++設計模式
Adapter 介面卡設計模式
定義抽象圖形類 author softstar abstract class shape public shape int x,int y public void setlocation int x,int y public int getlocation abstract void display...
設計模式 介面卡模式 Adapter
定義 把乙個類的介面轉換成客戶端期待的介面 從而使原來由於介面不相容而不能一起工作的那些類可以一起工作 典型描述 筆記本電源線是三個口的,如果插板只有兩個口的時候就不匹配了 這時候乙個三口到兩口的轉化器就解決此問題 介面卡模式就相當於轉化器 介面卡模式的構成 目標抽象角色 target 定義客戶要的...
設計模式 介面卡模式(Adapter)
介面卡模式是將乙個型別介面進行封裝從而轉化另乙個型別的介面,它的作用相當於乙個型別轉換器。1 模式中的角色 adaptee介面 這是需要被轉換的源型別,即需要進行轉換的介面。adapter類 對adaptee進行轉換的類 target介面 目標介面,最終轉化成的介面型別 2 角色關係圖 3 例項 描...