介面卡模式將兩個相互之間並沒有直接關係的類產生了關聯,並使其中一方能夠在不改變現有介面的情況下,呼叫到對方的介面。
下面是乙個例子:
上圖中,我們只能利用target的request介面,但是卻需要呼叫adaptee的specialrequest(),此時就可以使用adapter來完成這個工作。
具體的做法是,adapter繼承兩者,並重新實現target中的request介面,在該介面中呼叫adaptee的specialrequest介面。
下面是具體的**:
1. target的實現:
/****************** target *********************/
class target ;
void target::request()
2. adaptee的實現:
/****************** adaptee *********************/
class adaptee ;
void adaptee::specialrequest()
3. adapter的多重繼承:
/****************** adapter *********************/
//c++中的多重繼承
class adapter : public target, adaptee ;
//adapter中的request呼叫了adaptee中的specialrequest.
void adapter::request()
4. 具體的使用:
/****************** 測試 *********************/
int main(void)
5. 結果:
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...
設計模式之介面卡模式(類介面卡模式)
介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...
設計模式 介面卡模式
01 02 author rollen holt 設計模式之 介面卡模式 03 04 05 inte ce window 11 12 abstract class windowadapter 16 public void close 19 public void activated 22 publi...