C 設計模式(十三) 介面卡模式

2021-08-19 17:45:13 字數 2060 閱讀 3126

將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。介面卡模式講了兩種型別,類介面卡模式和物件介面卡模式。
本文使用書中籃球翻譯的例子,**使用c++語言描述,**存在的不足或問題有望各位指出。

(1)物件介面卡模式模版

//物件介面卡模式

#include

using

namespace

std;

class target

virtual ~target(){}

virtual

void request()

~adapter()

void request() override

private:

adaptee *adaptee;

};int main()

(2)類介面卡模式模版
//類介面卡模式

#include

using namespace std;

class target

virtual ~target(){}

virtual

void request()

~adapter()

void request() override

private:

};int main()

(3)籃球翻譯事例使用物件介面卡模式實習
#include 

#include

#include

using namespace std;

class player

virtual ~player(){}

void setname(string)

virtual

void attack()=0;

virtual

void defense()=0;

protected:

string name;

};class forwards:public player

~forwards(){}

forwards(string name)

void attack() override

void defense() override

};class center: public player

~center(){}

center(string name)

void attack() override

void defense() override

};class guards: public player

~guards(){}

guards(string name)

void attack() override

void defense() override

};class foreigncenter

~foreigncenter(){}

void setname(string name)

void attack()

void defense()

private:

string name;

};class translator: public player

~translator()

translator(string name)

void attack() override

void defense() override

private:

foreigncenter *foreigncenter = new foreigncenter();

};int main()

使用介面卡模式
系統的資料和行為都正確,但介面不符時,我們應該考慮用介面卡,目的是使控制範圍之外的乙個原有物件與某個介面匹配。介面卡模式主要應用於希望復用一些現存的類,但是介面又與復用環境要求不一致的情況。

設計模式C 實現十三 介面卡模式

介面卡模式 adapter 將乙個類的介面轉換成客戶希望的另乙個介面。使得原本介面不相容而不能在乙個工作的那些類可以一起工作。使用場景 當系統的資料和行為都正確,但介面不同時,我們可以考慮使用介面卡模式來匹配介面。主要應用在希望復用一些存在的類,但是介面又和復用環境要去不同時使用。ifndef ad...

(十三)介面卡模式

f4定義 介面卡模式 adpter 將乙個類的介面轉換成客戶希望的另外乙個介面。adpter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。dp uml類圖 下面是我寫的例子 例子的原理通過注釋就可以知曉 adpter.cpp 定義控制台應用程式的入口點。include stdafx....

設計模式之(十三 介面卡模式)Adapter

設計模式之 十 三 介面卡模式 adapter 適用範圍 將乙個介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容不能一起工作的類可以一起工作。在設計初期不考慮使用介面卡模式,一般是在後期維護階段。當雙方都不太容易修改的時候再使用介面卡模式適配。例項 姚明去nba打球,因為他...