国产性生交xxxxx免费-国产中文字幕-啊灬啊灬啊灬快灬高潮了,亚洲国产午夜精品理论片在线播放 ,亚洲欧洲日本无在线码,色爽交视频免费观看

鍋爐信息網 > 鍋爐知識 > 鍋爐學習

Adapter 模式

發布時間:

意圖:將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些類可以一起工作。動

意圖:將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些類可以一起工作。

動機:在軟件系統中,由于應用環境的變化,常常需要將“一些現存的對象”放在新的環境中應用,但是新環境要求的接口時這些現在對象所不滿足的。

適用性:

1. 你想使用一個已存在的類,而它的接口不符合你的需求

2. 你想創建一個可以復用的類,該類可以與其他不相關的類或不可預見的類協同工作

3. (僅僅適用于對象適配器)你想使用一些已經存在的子類,但是不可能對每一個都進行子類化以匹配它們的接口。對象適配器可以適配它的父類接口。

結構:

類適配器:

對象適配器:

參與者

Target : 定義Client使用的與特定領域相關的接口

Client : 與符合Target接口的對象協同

Adaptee:定義一個已經存在的接口,這個接口需要適配

Adapter: 對Adaptee的接口與Target接口進行適配

協作

Client在Adapter實例上調用一些操作。接著適配器調用Adapter的操作實現請求。

效果

1. 用一個具體的Adapter類對Adaptee和Target進行適配。結果是當我們想要匹配一個類以及他的子類的時候,類Adapter將不能勝任工作。

2. 使得Adapter可以重新定義Adaptee的部分行為,因為Adapter是Adaptee的子類

3. 僅僅引入一個對象,并不需要額外的指針以間接得到Adaptee

4. 允許一個Adapter與多個Adaptee-Adaptee本身以及它的所有子類同時工作,Adapter也可以一次給所有的Adaptee添加功能。

5. 使得重定義Adaptee的行為比較困難。

實現:

代碼示例如下:

#include <iostream>nclass ITarget{npublic:n virtual ~ITarget(){}n virtual void Process() = 0;nnprotected:n ITarget(){}n};nclass Adaptee{npublic:n void OldInterface(){n std::cout << "exec " << std::endl;n }n};nclass Adapter : public ITarget{npublic:n Adapter(Adaptee *_p){n _adaptee = _p;n }n void Process(){n _adaptee->OldInterface();n }nprivate:n Adaptee *_adaptee;n};nint main(int argc,char *argv[])n{n Adaptee *_p = new Adaptee;n ITarget *target = new Adapter(_p);n target->Process();n delete _p;n delete target;n return 0;n}n

精選推薦

  • 催化燃燒設備供應商
    催化燃燒設備供應商

    催化燃燒設備供應商,催化燃燒處理裝置廠家,本裝置是采用廢氣先進入噴淋塔過濾——干式過濾—-蜂窩活性碳吸附—脫附再生——催化燃

  • 該不該有模具供應商
    該不該有模具供應商

    今天紅姐又來跟我探討供應商的管理問題了。故事是這樣的:供應商來料不良,原因是模具問題。而那個模具是我們找的一家模具供應商做的

  • 什么牌子高壓鍋好,高壓鍋哪個牌子好,高壓鍋什么牌子好,高壓鍋哪個品牌好
    什么牌子高壓鍋好,高壓鍋哪個牌子好,高

    1蘇泊爾 雙重安全閥門 高壓鍋雙重安全閥,防燙把手,復合底。這款高壓鍋擁有雙重安全閥門,更好的保證使用安全。搭載防燙傷把手,方便起

  • 高壓鍋啥牌子好,高壓鍋哪個牌子的好,什么高壓鍋牌子好,高壓鍋推薦選購指南
    高壓鍋啥牌子好,高壓鍋哪個牌子的好,什

    1、雙喜階梯型復底高壓鍋推薦理由:高壓鍋滿足上蒸下煮,飯菜同時進行,方便快速,有效提升烹飪效率。多重安全防護,安全系數較高,家人使用

0