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

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

C++設(shè)計(jì)模式之適配器模式

2020-05-23 14:21:25
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C++設(shè)計(jì)模式之適配器模式,本文詳細(xì)講解了C++中的適配器模式,并給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下
 
 

生活中的適配器

買筆記本電腦,買手機(jī)時(shí),都有一個(gè)電源適配器,電源適配器又叫外置電源,是小型便攜式電子設(shè)備及電子電器的供電電壓變換設(shè)備,常見于手機(jī),筆記本電腦上。它的作用是將家里的220V高電壓轉(zhuǎn)換成這些電子產(chǎn)品能工作的5V~20V左右穩(wěn)定的低電壓,使它們能正常工作。就是說,如果沒有這個(gè)電源適配器,我們的手機(jī)和電腦就不能進(jìn)行充電了。

之前同事去日本出差,由于工作需要,就將自己的筆記本帶過去了。到了的當(dāng)晚就悲劇了,筆記本無法使用。由于日本的居民用電電壓是110V,而中國是220V,同事的筆記本是220V供電的。第二天,同事就去買了一個(gè)電壓適配器。如果沒有電壓適配器,估計(jì)這次出差都要悲劇了。

什么是適配器模式?

說了這么多生活中的適配器的例子,那么在軟件設(shè)計(jì)、開發(fā)過程中,適配器又是個(gè)什么東西呢?

在GOF的《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》中是這樣說的:將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。好比日本現(xiàn)在就只提供110V的電壓,而我的電腦就需要220V的電壓,那怎么辦啦?適配器就是干這活的,在不兼容的東西之間搭建一座橋梁,讓二者能很好的兼容在一起工作。

為什么要使用適配器模式?

在軟件開發(fā)中,有的時(shí)候系統(tǒng)的數(shù)據(jù)和行為都正確,但接口不符合,我們應(yīng)該考慮使用適配器模式,目的是使控制范圍之外的一個(gè)原有對(duì)象與某個(gè)接口匹配。舉個(gè)例子:在開發(fā)一個(gè)模塊的時(shí)候,有一個(gè)功能點(diǎn)實(shí)現(xiàn)起來比較費(fèi)勁,但是,之前有一個(gè)項(xiàng)目的模塊實(shí)現(xiàn)了一樣的功能點(diǎn);但是現(xiàn)在這個(gè)模塊的接口和之前的那個(gè)模塊的接口是不一致的。此時(shí),作為項(xiàng)目經(jīng)理的你,該怎么辦啦?當(dāng)然是在中間加一層Wrapper了,也就是使用適配器模式,將之前實(shí)現(xiàn)的功能點(diǎn)適配進(jìn)新的項(xiàng)目了。為什么呢?主要是使用適配器模式有以下優(yōu)點(diǎn):

1.降低了去實(shí)現(xiàn)一個(gè)功能點(diǎn)的難度,可以對(duì)現(xiàn)有的類進(jìn)行包裝,就可以進(jìn)行使用了;

2.提高了項(xiàng)目質(zhì)量,現(xiàn)有的類一般都是經(jīng)過測(cè)試的,使用了適配器模式之后,不需要對(duì)舊的類進(jìn)行全面的覆蓋測(cè)試;

3.總的來說,提高了效率,降低了成本。

什么時(shí)候使用適配器模式?

1.每一種設(shè)計(jì)模式都有它最適用的場(chǎng)合。適配器模式在以下場(chǎng)合下最適用:

2.使用一個(gè)已經(jīng)存在的類,如果它的接口和你實(shí)際要求的不一致時(shí),可以考慮使用適配器模式;
要在調(diào)用者和功能提供者雙方都不太容易修改的時(shí)候再使用適配器模式,而不是一有不同時(shí)就使用它。

UML類圖

C++設(shè)計(jì)模式之適配器模式

上圖是適配器模式的第一種實(shí)現(xiàn)形式,適配器Adapter繼承自Target和Adaptee類,Adapter類需要重寫Target類的Request函數(shù),在Request中做適當(dāng)?shù)奶幚恚{(diào)用Adaptee類的SepcificRequest。最終,Target實(shí)際調(diào)用的是Adaptee的SpecificRequest來完成Request的,完成適配;這種叫做類適配器。

C++設(shè)計(jì)模式之適配器模式

上圖是適配器的第二種實(shí)現(xiàn)形式,適配器Adapter類繼承自Target類,同時(shí),在Adapter類中有一個(gè)Adaptee類型的成員變量;Adapter類重寫Request函數(shù)時(shí),在Request中,使用Adaptee類型的成員變量調(diào)用Adaptee的SpecificRequest函數(shù),最終完成適配;這種叫做對(duì)象適配器。

類適配器和對(duì)象適配器的比較

既然有了類適配器和對(duì)象適配器,那么在實(shí)際中如何在二者之間做選擇呢?

類適配器有以下特點(diǎn):

1.由于Adapter直接繼承自Adaptee類,所以,在Adapter類中可以對(duì)Adaptee類的方法進(jìn)行重定義;

2.如果在Adaptee中添加了一個(gè)抽象方法,那么Adapter也要進(jìn)行相應(yīng)的改動(dòng),這樣就帶來高耦合;

3.如果Adaptee還有其它子類,而在Adapter中想調(diào)用Adaptee其它子類的方法時(shí),使用類適配器是無法做到的。

對(duì)象適配器有以下特點(diǎn):

1.有的時(shí)候,你會(huì)發(fā)現(xiàn),不是很容易去構(gòu)造一個(gè)Adaptee類型的對(duì)象;

2.當(dāng)Adaptee中添加新的抽象方法時(shí),Adapter類不需要做任何調(diào)整,也能正確的進(jìn)行動(dòng)作;

3.可以使用多肽的方式在Adapter類中調(diào)用Adaptee類子類的方法。

由于對(duì)象適配器的耦合度比較低,所以在很多的書中都建議使用對(duì)象適配器。在我們實(shí)際項(xiàng)目中,也是如此,能使用對(duì)象組合的方式,就不使用多繼承的方式。

代碼實(shí)現(xiàn)

類適配器的實(shí)現(xiàn)代碼

 

復(fù)制代碼代碼如下:

/*
** FileName     : AdapterPatternDemo
** Author       : Jelly Young
** Date         : 2013/11/27
** Description  : More information, please go to http://www.jellythink.com
*/
 
#include <iostream>
using namespace std;
 
// Targets
class Target
{
public:
    virtual void Request()
    {
        cout<<"Target::Request"<<endl;
    }
};
 
// Adaptee
class Adaptee
{
public:
    void SpecificRequest()
    {
        cout<<"Adaptee::SpecificRequest"<<endl;
    }
};
 
// Adapter
class Adapter : public Target, Adaptee
{
public:
    void Request()
    {
        Adaptee::SpecificRequest();
    }
};
 
// Client
int main(int argc, char *argv[])
{
    Target *targetObj = new Adapter();
    targetObj->Request();
 
    delete targetObj;
    targetObj = NULL;
 
    return 0;
}

 

對(duì)象適配器的代碼實(shí)現(xiàn)

 

復(fù)制代碼代碼如下:

/*
** FileName     : AdapterPatternDemo
** Author       : Jelly Young
** Date         : 2013/11/27
** Description  : More information, please go to http://www.jellythink.com
*/
 
#include <iostream>
using namespace std;
 
class Target
{
public:
    Target(){}
    virtual ~Target(){}
    virtual void Request()
    {
        cout<<"Target::Request"<<endl;
    }
};
 
class Adaptee
{
public:
    void SpecificRequest()
    {
        cout<<"Adaptee::SpecificRequest"<<endl;
    }
};
 
class Adapter : public Target
{
public:
    Adapter() : m_Adaptee(new Adaptee) {}
 
    ~Adapter()
    {
        if (m_Adaptee != NULL)
        {
            delete m_Adaptee;
            m_Adaptee = NULL;
        }
    }
 
    void Request()
    {
        m_Adaptee->SpecificRequest();
    }
 
private:
    Adaptee *m_Adaptee;
};
 
int main(int argc, char *argv[])
{
    Target *targetObj = new Adapter();
    targetObj->Request();
 
    delete targetObj;
    targetObj = NULL;
 
    return 0;
}

 

總結(jié)

適配器模式很容易理解和實(shí)現(xiàn),在以后的項(xiàng)目中,多多的進(jìn)行實(shí)踐,將學(xué)到的理論知識(shí)運(yùn)用到實(shí)際的項(xiàng)目中去,寫出漂亮的代碼。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
日韩精品一区二| 欧美综合亚洲图片综合区| 国产丰满果冻videossex| 激情久久久久久久| 成人久久久久久久| 成人国产精品入口免费视频| 深夜福利视频在线免费观看| 欧美日韩123| 欧美日韩国产系列| 亚洲妇女无套内射精| 国产一级二级毛片| 欧美性另类69xxxx| 精品久久久久av影院| 一卡二卡在线视频| 亚洲五月六月丁香激情| bt欧美亚洲午夜电影天堂| 自拍av一区二区三区| 亚洲国产一区二区三区高清| 久久mv成人精品亚洲动漫| 123区在线| 欧洲激情视频| 亚洲免费看黄网站| 久久久99精品| 澳门永久av免费网站| 91蝌蚪精品视频| 偷拍亚洲色图| 国产精品国产精品国产专区不卡| 免费观看成年人视频在线观看| 综合免费一区二区三区| 久久伊人资源站| **日韩最新| 久久99久久久欧美国产| 狠狠干天天干| 992tv成人免费观看| 偷拍国模大尺度视频在线播放| 写真福利精品福利在线观看| 97福利网站在线观看视频| 在线免费精品视频| 一区二区三区短视频| 日韩一区在线看| 国产理论在线观看| 日本亚洲天堂网| 麻豆网站在线免费观看| 7777精品伊人久久久大香线蕉最新版| 国产亚洲精品91在线| 欧美h版电影| 亚洲精选国产| 好吊色欧美一区二区三区视频| 欧美在线不卡区| 欧美成人app| 成年人在线播放| 一起草av在线| 日韩欧美激情一区| 亚洲午夜国产成人| 韩国av中国字幕| 亚洲av永久无码精品| 99视频在线观看一区三区| 日本暖暖在线视频| 国产日本在线视频| 9色在线视频网站| 精品91自产拍在线观看一区| 精品av综合导航| 成人免费a**址| 日韩色图在线观看| 在线观看免费黄色小视频| 久久久无码人妻精品无码| 欧美嫩在线观看| 丁香婷婷在线| 人人超在线公开视频| 一区二区三区在线播放| 免费在线黄色片| 91麻豆精品久久毛片一级| 亚洲图片88| 5566中文字幕一区二区| 成年人网站91| 欧美又大粗又爽又黄大片视频| 欧美久久久久久久久久久| 欧美一级淫片播放口| 色猫av在线| 日韩不卡一区二区三区| 天堂网av成人| 秋霞av在线| 中文字幕乱码在线| 国产污污在线观看| 亚洲婷婷噜噜| 伊人色综合一区二区三区影院视频| 最新中文字幕在线观看| 国产美女av| 国产日产在线观看| 国产精品成人一区二区三区| 日韩中文一区二区| 国产精品自拍网站| 国产亚洲精品中文字幕| 欧美午夜精品久久久久免费视| 国产精品sm调教免费专区| 99在线热播精品免费99热| 一个人免费观看在线视频www| 屁屁影院国产第一页| 国产一级片在线播放| 国产精品毛片大码女人| 日韩精品视频三区| 成人性生交大合| 放荡的美妇在线播放| 国产又粗又猛又爽又黄的网站| 美女高潮黄又色高清视频免费| 国产欧美另类| 国产又粗又大又爽的视频| 欧美深性狂猛ⅹxxx深喉| 久久视频精品在线| 欧美激情一区二区三区| 久久精品亚洲热| 一区二区三区欧美精品| 欧美激情网址| 日本不卡一区| 国产精品久久..4399| 中文字幕第8页| 日韩人体视频一二区| 日韩精品国产一区二区| 国产a一区二区| 男人av在线播放| 一区二区三区四区免费观看| 精品国产无码在线观看| 亚洲精品美女在线观看播放| 伊人av在线com| 漂亮人妻被黑人久久精品| 一级片久久久久| 中文字幕av日韩| 久久久久国产精品免费网站| 色一情一乱一伦一区二区三欧美| 免费在线成人激情电影| 女女百合国产免费网站| 国产网址在线观看| 夜夜精品浪潮av一区二区三区| 国产精品一区二区在线播放| 特黄特色大片免费视频大全| 亚洲国产中文字幕在线视频综合| 精品视频网站| 深夜福利在线视频| 国产一区二区精品久久99| 国产真实乱子伦| 欧美日韩激情视频一区二区三区| 欧美日韩国产一区二区三区| 欧美不卡1区2区3区| 欧美日韩一区成人| 国产麻豆xxxvideo实拍| 久久免费影院| 日韩美女在线| 另类少妇人与禽zozz0性伦| 久久免费视频在线| 欧美第一页草草影院浮力| 午夜精品久久久内射近拍高清| 国外视频精品毛片| 三上悠亚亚洲一区| 成视频年人免费看黄网站| 久久免费99精品久久久久久| 久久国产精品黑丝| 好吊妞国产欧美日韩免费观看网站| 日本24小时在线高清视频| 亚洲av无码乱码在线观看性色| 欧美精品一级片| 好爽好深好紧好大| 欧美三级理伦电影| 日本一二三区视频在线| 精品无码久久久久成人漫画| 狠狠色丁香婷婷综合| 国产色产综合产在线视频| 亚洲性线免费观看视频成熟| 久久久久久久成人| 在线综合欧美| 欧美日韩午夜激情| 亚洲成av人片一区二区密柚| 日日骚av一区二区| 国产精品综合久久久| 久久午夜羞羞影院免费观看| 伊人成人在线观看| 国产精品一区二区99| 亚洲一级片免费看| 久久久久久高潮国产精品视| 国产精品一区二区久激情瑜伽| 国产精品综合色区在线观看| 女人被狂躁c到高潮| 三级久久三级久久| 好吊妞视频一区二区三区| 欧美成人a视频| 成人午夜电影免费在线观看| 亚洲精品国产精品乱码不99| 一本色道久久综合熟妇| 中文字幕手机在线视频| a在线视频播放观看免费观看| 久久精品道一区二区三区| 国产黄在线观看免费观看不卡| 99久久久国产精品美女| 国产福利视频一区二区| 久久99国产精品免费| av无码久久久久久不卡网站| 久久久久久av无码免费网站下载| 亚洲www在线| www.久久久久.com| 精品乱码一区内射人妻无码| 正义之心1992免费观看全集完整版| 午夜伦欧美伦电影理论片| 中文字幕剧情在线观看一区| 日本免费黄色网| 色婷婷综合久久久久久| 美腿丝袜亚洲图片| 久久久久免费精品| 久久国产成人午夜av影院宅| 亚洲欧美激情视频| 嫩草www视频在线观看高清| 国产精品成人国产| 精品99re| 一个人看的www视频免费在线观看| 精品国产制服丝袜高跟| 久久国产精品亚洲77777| 国内av在线播放| 亚洲欧美另类在线视频| av电影一区| 激情小说亚洲图片| 国产女人18毛片水真多18| 国产精品一区二区久久精品| av在线天堂| 久久久久资源| 国产口爆吞精一区二区| 欧美自拍偷拍一区| 欧美a级成人淫片免费看| 欧美日韩国产一中文字不卡| 九色porny丨精品自拍视频| 久久国产成人精品| 日韩成人影院| 三年片免费观看大全| 日本妇女毛茸茸| 国产精品色在线| 欧美最猛性xxxx高清| 欧美变态网站| 久色视频网站| xxxx日本黄色| 精品国产一区二区三区在线| www.-级毛片线天内射视视| 亚洲毛茸茸少妇高潮呻吟| 亚洲精品日日夜夜| 第三区美女视频在线| www.国产成人| 久久综合给合久久狠狠色| 日本成人网址| 免费永久视频| 少妇精品久久久一区二区| 国产精品一区二区三区在线播放| 大黑人交xxx极品hd| 香蕉成人在线视频| 国产成人综合网| 国产精品二三区| 真人做人试看60分钟免费| 欧美日韩在线精品一区二区三区激情综合| 制服丝袜第二页| 7777奇米亚洲综合久久| 国产一区二区三区黄片| 能看毛片的网站| 久久精品影视大全| 精东传媒在线观看| 国产手机视频精品| 在线观看 中文字幕| 欧美少妇一区| 国产亚洲视频在线观看| 国产麻豆欧美日韩一区| 北条麻妃国产九九精品视频| 成人动态视频| 日韩激情一区二区| 美女18一级毛片一品久道久久综合| 欧美肥老妇视频| 久久久午夜视频| dy888夜精品国产专区| 97超碰人人澡| 日韩专区在线观看| 都市激情国产精品| 三级特黄视频| 91av网站在线播放| 日韩伦理在线| 爽爽视频在线观看| 91丨九色丨海角社区| www.中文字幕在线观看| 欧美色欧美亚洲高清在线视频| 欧美风情第一页| 精品视频在线观看网站| 国产在线传媒| 日韩激情视频| 亚洲三级网页| 午夜精品久久久久久久白皮肤| 成人免费午夜电影| 99久久久精品免费观看国产蜜| 在线最新版中文在线| 99国产精品久久久久久久成人| 亚洲色大成网站www久久九九| 人妖欧美一区二区| 国产精品久久国产精麻豆99网站| 欧美日韩综合在线免费观看| 最近日韩中文字幕中文| 成人性生交大片免费看午夜| 国产精品久久久久久免费免熟| 精品亚洲美女网站| 日韩欧美在线免费| 韩国av电影免费观看| 午夜剧场高清版免费观看| 99久久精品免费精品国产| 国产亚洲欧美一区在线观看| 欧美黄色影院| 国产三级电影在线| 国产精品一区在线免费观看| 青青操国产视频| www.四虎在线| 91超碰这里只有精品国产| 亚洲曰本av电影| 色国产综合视频| 亚洲欧洲av色图| 韩国日本一区| 九九九九九九九九| 亚洲不卡av一区二区三区| 乱子伦一区二区三区| 欧美天天在线| www国产亚洲精品| 久久国产美女视频| 夜夜操天天操亚洲| 在线午夜精品| 国产精品网红福利| 欧美伊人影院| 国产精品一区专区欧美日韩| 天天添天天操| 999这里只有精品| 精品国产无码在线观看|