亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

深入解析設計模式中的適配器模式在C++中的運用

2020-01-26 14:42:02
字體:
來源:轉載
供稿:網友

適配器模式屬于結構型的設計模式,它是結構型設計模式之首(用的最多的結構型設計模式)。
適配器設計模式也并不復雜,適配器它是主要作用是將一個類的接口轉換成客戶希望的另外一個接口這樣使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。適配器模式有兩種:1.類的適配器 2.對象適配器,對象適配器更多一些。

示例:比如你在網上買了一個手機,但是買家給你發回來了一個3接頭的充電器,但是恰好你又沒有3接頭的插槽,只有2個接口的插槽,于是你很直然地便會想到去找你個3接口轉兩接口的轉換器。簡單的分析下這個轉換器便是我們這里的適配器Adapter。三相插頭便是我們要適配的Adaptee,兩相插類適配器-----在我看來C++的類適配器的用多重繼承實現,并提供適配后的接口。

201639180223272.jpg (542×198)

這是你的三相插頭

class ThreePhaseOutlet { public:   void doThreePhasePlugin()   {     cout<<"三相插頭強勢插入!"<<endl;   } }; 

這是你想要的兩相插頭

class TwoPhaseOutlet  { public:   virtual void doPlugin() = 0; }; 

 
然后你將需要找到一個轉接頭,將三相插頭轉換為“兩相插頭”

class OutletConvertor: public TwoPhaseOutlet,public ThreePhaseOutlet { public:   void doPlugin()   {     doConvertor();     doThreePhasePlugin();   }       void doConvertor()   {     cout<<"三相插頭轉為兩廂插頭!"<<endl;   } }; 

現在你可以強勢插入兩相的插口了。

TwoPhaseOutlet* outlet = new OutletConvertor(); outlet->doPlugin(); 

對象適配器模式-----對象適配器是將需要適配的對象進行包裝然后提供適配后的接口。

201639180653299.jpg (528×198)

對象適配器的 三相插口和轉接頭的代碼和上面一致。只是整合步驟不一致

class OutletConvertor : public TwoPhaseOutlet { public:   void doPlugin()   {     doConvertor();     m_out.doThreePhasePlugin();   }   void doConvertor()   {     cout<<"三相插頭轉為兩廂插頭!"<<endl;   }   ThreePhaseOutlet m_out; }; 

對象適配器相比類適配器來說更加靈活,他可以選擇性適配自己想適配的對象。例如我們下面把代碼改成這樣,你也許就會明白為什么我這樣說:

class OutletConvertor : public TwoPhaseOutlet { public:   OutletConvertor(ThreePhaseOutlet out)   {     m_out = out;   }   void doPlugin()   {     doConvertor();     m_out.doThreePhasePlugin();   }   void doConvertor()   {     cout<<"三相插頭轉為兩廂插頭!"<<endl;   }   ThreePhaseOutlet m_out; }; 

我們在構造的時候將具體需要適配的適配對象傳入,這樣便可以根據傳入不同的對象,從而對該對象進行適配。而類適配器卻無法選擇對象,他是對整個類進行適配。也就是把所有的三相插口全部轉換為兩相的,而不是針對某一個。


在以下各種情況下使用適配器模式:

1、 系統需要使用現有的類,而此類的接口不符合系統的需要。
2、 想要建立一個可以重復使用的類,用于與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的類一起工作。這些源類不一定有很復雜的接口。
3、 (對對象適配器而言)在設計里,需要改變多個已有子類的接口,如果使用類的適配器模式,就要針對每一個子類做一個適配器,而這不太實際。

Adapter模式在實現時有以下這些值得注意的地方:

1、 目標接口可以省略,模式發生退化。但這種做法看似平庸而并不平庸,它可以使Adaptee不必實現不需要的方法(可以參考Default Adapter模式)。其表現形式就是父類實現缺省方法,而子類只需實現自己獨特的方法。這有些像模板(Template)模式。
2、 適配器類可以是抽象類。
3、 帶參數的適配器模式。使用這種辦法,適配器類可以根據參數返還一個合適的實例給客戶端。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品久久久久久牛牛| 欧美性猛交xxxx黑人猛交| 亚洲日本成人网| 日韩视频免费在线观看| 高清欧美性猛交xxxx黑人猛交| 欧美日韩国产综合视频在线观看中文| 26uuu日韩精品一区二区| 97在线免费观看视频| 国产精品久久久久久久一区探花| 91免费欧美精品| 欧美日韩亚洲精品内裤| 欧美激情第6页| 中文字幕最新精品| 青青青国产精品一区二区| 狠狠色狠狠色综合日日五| 国产精品福利久久久| 91精品在线观看视频| 国产精品久久久久久久久久久久久久| 亚洲自拍小视频免费观看| 亚洲精品电影在线| 国产在线拍偷自揄拍精品| 亚洲在线免费视频| 欧美精品在线免费观看| xxxxxxxxx欧美| 欧美视频专区一二在线观看| 成人免费在线视频网址| 久久综合国产精品台湾中文娱乐网| 亚洲欧洲视频在线| 亚洲一级一级97网| 国产成人福利网站| 久久青草精品视频免费观看| 97成人精品区在线播放| 国产一区欧美二区三区| 欧美有码在线观看视频| 久久久成人精品视频| 川上优av一区二区线观看| 精品久久久久久亚洲国产300| 少妇高潮久久77777| 久久激情视频久久| 成人黄色午夜影院| 亚洲国产欧美一区| 亚洲国产美女精品久久久久∴| 日韩欧美国产免费播放| 亚洲电影成人av99爱色| 日韩免费观看在线观看| 精品激情国产视频| 青青草原一区二区| 亚洲a在线播放| 亚洲一区美女视频在线观看免费| 91产国在线观看动作片喷水| 亚洲黄色av女优在线观看| 中文在线不卡视频| 国产精品久久久久久久久久久久久| 自拍偷拍亚洲在线| 81精品国产乱码久久久久久| 欧美性理论片在线观看片免费| 久久全球大尺度高清视频| 久久在精品线影院精品国产| 日韩中文字幕精品视频| 日韩精品久久久久| 国产97在线视频| 成人在线视频网站| 综合网日日天干夜夜久久| 亚洲欧洲午夜一线一品| 国产成人鲁鲁免费视频a| 欧美做受高潮电影o| 久久精品男人天堂| 国产精品免费观看在线| 中文字幕av一区二区| 国产精品久久久久77777| 亚洲一级黄色片| 成人美女免费网站视频| 中文字幕亚洲综合| 中文字幕av一区二区三区谷原希美| 亚洲精品久久久久久久久久久久| 亚洲2020天天堂在线观看| 欧美高清激情视频| 一本色道久久综合狠狠躁篇怎么玩| 国产精品福利片| 91日韩在线视频| 亚洲精品日产aⅴ| 91精品国产自产在线老师啪| 久久久国产精品x99av| 国产激情999| 日韩中文字幕不卡视频| 国产成人一区二区| 69国产精品成人在线播放| 成人伊人精品色xxxx视频| 高跟丝袜一区二区三区| 久久频这里精品99香蕉| 久久精品成人欧美大片| 国产精品视频1区| 国产精品免费福利| 国产精品久久久久久久久| 亚洲风情亚aⅴ在线发布| 国产激情久久久| 国产精品视频专区| 黄色一区二区三区| 亚洲三级黄色在线观看| 欧美久久精品午夜青青大伊人| 日韩视频在线一区| 深夜福利91大全| 欧美精品在线免费播放| 国产精品免费视频xxxx| 久久99国产精品久久久久久久久| 亚洲黄色有码视频| 美女福利视频一区| 久久不射热爱视频精品| 尤物精品国产第一福利三区| 日韩亚洲成人av在线| 亚洲二区中文字幕| 超碰日本道色综合久久综合| 亚洲国产精品一区二区久| 国产精品一二三在线| 亚洲精品欧美极品| 欧美日韩一区二区在线| 奇门遁甲1982国语版免费观看高清| 91亚洲永久免费精品| 国产日韩在线免费| 成人免费视频在线观看超级碰| 中文国产成人精品| 九九热这里只有在线精品视| 这里只有精品在线观看| 69精品小视频| 久久久久久久97| 久久久女女女女999久久| 欧美又大又粗又长| 国产亚洲成av人片在线观看桃| 中文字幕日韩精品在线| 亚洲视频在线免费观看| 中文字幕精品在线视频| 国产丝袜精品视频| 欧美国产日产韩国视频| 奇米成人av国产一区二区三区| 亚洲精品一区二区久| 久久久国产91| 亚洲自拍偷拍一区| 国产精品视频白浆免费视频| 欧美精品激情blacked18| 国产999精品久久久影片官网| 欧美日韩成人在线观看| 欧美性猛交xxxx乱大交| 欧美成人精品xxx| 国产日韩欧美电影在线观看| 欧美性在线视频| 亚洲国内精品在线| 欧美猛交ⅹxxx乱大交视频| 亚洲成人激情小说| 欧美性做爰毛片| 欧美成人性色生活仑片| 亚洲国产精品成人一区二区| 国产精品视频自拍| 日韩精品视频在线播放| 日韩中文字幕在线精品| 久久久国产精品亚洲一区| 亚洲精品国产精品自产a区红杏吧| 亚洲国产精品久久久久秋霞不卡| 欧美福利小视频| 成人观看高清在线观看免费| 伊人久久综合97精品| 国产一级揄自揄精品视频| 久久精品国产69国产精品亚洲| 亚洲精品福利在线| 欧美激情奇米色|