介面卡模式:將乙個介面轉換成客戶希望的另乙個介面,使介面不相容的那些類可以一起工作,其別名為包裝器。介面卡模式既可以作為類結構型模式,也可以作為物件結構型模式。在介面卡模式中,我們通過增加乙個新的介面卡類來解決介面不相容的問題,使得原本沒有任何關係的類可以協同工作。
三個角色:
target目標角色:該角色定義把其它類轉換為何種介面,也就是我們的期望介面。
adaptee源角色:你想把誰轉換成目標角色。
adapter介面卡角色:介面卡模式的核心角色,其它兩個角色都是已經存在的角色,而介面卡角色是需要新建立的,它的職責非常簡單,把源角色轉換成目標角色,怎麼轉換?通過繼承或類關聯的方式。
如果需要將一些不同的兩種類接和在一起,那就可以使用介面卡模式。
四、**
例項:本地球員和外籍球員踢球。
1.球員基類
class player
virtual void attack() = 0;
virtual void defense() = 0;
protected:
string name;
};
2.各本地球員實現類
class forwards :public player
virtual void attack()
virtual void defense()
};class guards :public player
virtual void attack()
virtual void defense()
};
3.外籍球員實現類(adaptee)
class foreigncenter
string getname()
void foreignattack()
void foreigndefense()
private:
string name;
};
4.適配角色(adapter)目的:將外籍球員的函式功能通過介面卡轉換為player子類功能,使player物件可以呼叫foreigncenter中的函式。
class translator : public player
~translator()
} void attack()
void defense()
private:
foreigncenter* wjzf;
};
5.客戶端
int 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...