簡介
介面卡模式:
將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
構成
介面卡(adapter)模式結構包括的角色有目標(target)角色、源(adaptee)角色和介面卡(adapter)角色。
目標(target)角色:這就是所期待的介面,定義了客戶所期望的操作。目標(target)角色可以是具體類或抽象類。該角色不可缺少。
源(adaptee)角色:這是我們原有的產品,也是需要被適配的產品。這是我們原有的產品,也是需要被適配的產品:源(adaptee)角色可以用介面、抽象類和具體類來實現。該角色不可缺少。
介面卡(adapter)角色:介面卡角色是本模式的核心。adapter對adaptee介面與target介面進行適配,介面卡把源介面轉換成目標介面,在target目標角色與adaptee源角色之間提供一種過渡,即把adaptee源角色所提供的介面轉換為target目標角色所提供的介面。介面卡(adapter)角色必須是具體類。該角色不可缺少。
常用的場景
使用第三方庫的時候,第三方的庫肯定不能適用所有的系統,所以需要乙個介面卡來轉換。
優點
1.遮蔽了具體的實現方式,實現了依賴倒轉。
2.可以把不統一的介面封裝起來,使之成為統一的介面。
3.把本來不方便適用的介面轉換成統一的介面。
測試**
#include
#include
#include
using namespace std;
//目標類
class fbasebook
; void readb(){};
};//正常類
class fchinebook : public fbasebook
; void readb(){};
};class fforigenbook
; void readb1(){};
};//翻譯
class fadapteebook : public fbasebook
; void readb()
;void setbook(fforigenbook* book)
private:
fforigenbook* m_ofbook;
};void main()
介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...
介面卡模式 預設介面卡,類介面卡,物件介面卡
模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...