介面卡模式 Adapter

2021-08-31 14:02:24 字數 1774 閱讀 5148

介面卡模式:將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間.

物件介面卡:使用組合

類介面卡:使用多繼承

外觀模式:提供了乙個統一的介面,用來訪問子系統中的一群介面。外觀定義了乙個高層介面,讓子系統更容易使用。

要點:1.當需要使用乙個現有的類而其介面並不符合你的需要時,就使用介面卡

2.當需要簡化並統一乙個很大的介面或者一群很複雜的介面時,使用外觀

3.介面卡改變介面以符合客戶的期望

4.外觀將客戶從乙個複雜的子系統中解耦

5.實現乙個介面卡可能需要一番功夫,也可能不費功夫,視目標介面的大小與複雜度而定

6.實現乙個外觀,需要將子系統組合進外觀中,然後將工作委託給子系統執行

7.介面卡模式有兩種形式:物件介面卡和類介面卡。類介面卡需要用到多繼承

8.你可以為乙個子系統實現乙個以上的外觀

9.介面卡將乙個物件包裝起來以改變其介面;裝飾者將乙個物件包裝起來以增加新的行為和責任;而外觀將一群物件「包裝」起來以簡化其介面

原則:只和朋友交談

[img]

bird.h

#ifndef bird_h

#define bird_h

#include

using namespace std;

class bird

virtual void eat()

};#endif // bird_h

fishadapter.h

#ifndef fishadapter_h

#define fishadapter_h

#include"bird.h"

#include"fish.h"

class fishadapter:public bird

void fly()

void eat()

};#endif // fishadapter_h

fish.h

#ifndef fish_h

#define fish_h

#include

using namespace std;

class fish

virtual void eat()

};#endif // fish_h

adapter.h

#ifndef adapter_h

#define adapter_h

#include"fish.h"

#include"bird.h"

class adapter:public fish,bird

explicit adapter(bird* bird=null)

void fly()else

}void swim()

void eat()else}};

#endif // adapter_h

main.cpp

#include"fishadapter.h"

#include"adapter.h"

int main()

fish swim

fish eat

bird fly

bird eat

介面卡模式 Adapter

一句話 什麼是adapter adapter 就是乙個轉換器,比如乙個電源插頭可以讓乙個兩插頭的電器使用牆壁上的三插頭電源。這次的介紹將不寫 雖然設計模式是為了 而生,但我認為這是一種看世界的方法,不僅僅是一種 的設計方式,所以這次的介面卡模式因為比較簡單和容易理解就不再寫 解釋,但介面卡的思想能用...

Adapter 介面卡模式

1.概念 介面卡模式 adapter pattern gof95 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。2.兩種形式 a.類的介面卡模式 b.物件的介面卡模式 3.模擬問題 現在假設我們的程式已經設計了介面request介面,但是...

Adapter介面卡模式

adapter介面卡模式是一種結構型模式,主要應對 由於應用環境的變化,常常需要將 一些現存的物件 放在新的環境中應用,但是,新環境要求的介面是現存物件所不滿足的。設計模式 中說道 將乙個類的介面轉換成客戶希望的另乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的類可以一起工作。在實...