中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)phpstudy網(wǎng)站建設(shè)網(wǎng)站定制

網(wǎng)站建設(shè)phpstudy,網(wǎng)站建設(shè)網(wǎng)站定制,海淀網(wǎng)站建設(shè)棗莊,wordpress適合做官網(wǎng)一,定義適配器模式:結(jié)構(gòu)型模式之一,適配器提供客戶類需要的接口,適配器的實現(xiàn)就是把客戶類的請求轉(zhuǎn)化為對適配者的相應(yīng)接口的調(diào)用。也就是說:當(dāng)客戶類調(diào)用適配器的方法時,在適配器類的內(nèi)部將調(diào)用適配者類的方法&#x…

一,定義

適配器模式:結(jié)構(gòu)型模式之一,適配器提供客戶類需要的接口,適配器的實現(xiàn)就是把客戶類的請求轉(zhuǎn)化為對適配者的相應(yīng)接口的調(diào)用。也就是說:當(dāng)客戶類調(diào)用適配器的方法時,在適配器類的內(nèi)部將調(diào)用適配者類的方法,而這個過程對客戶類是透明的,客戶類并不直接訪問適配者類。因此,適配器可以使由于接口不兼容而不能交互的類可以一起工作。

適配器模式分為兩種:

  • 類適配器(適配器和適配者是繼承關(guān)系

  • 對象適配器(適配器和適配者是關(guān)聯(lián)關(guān)系

二,類圖

三,成員職責(zé)

  • 抽象目標(biāo)角色:目標(biāo)抽象類定義客戶所需接口,可以是一個抽象類或接口,也可以是具體類。

  • 適配者角色:適配器可以調(diào)用另一個接口,作為一個轉(zhuǎn)換器,對Adaptee和Target進行適配,適配器類是適配器模式的核心

在類適配器中,它通過繼承Target和Adaptee使二者產(chǎn)生聯(lián)系

在對象適配器中,它通過繼承Target并關(guān)聯(lián)一個Adaptee對象(設(shè)置為私有成員)使二者產(chǎn)生聯(lián)系。

  • 適配器角色:適配者即被適配的角色,它定義了一個已經(jīng)存在的接口,這個接口需要適配,適配者類一般是一個具體類,包含了客戶希望使用的業(yè)務(wù)方法。

四,實現(xiàn)

我們給出以下場景:

現(xiàn)在有兩種規(guī)格的插座:中式規(guī)格插座和英式規(guī)格插座,我們現(xiàn)在不改變英國插座的基礎(chǔ),使英國可以轉(zhuǎn)化為中國插座的規(guī)格

英國插座(抽象目標(biāo)類Target)

class uksoket_target
{
public:virtual void ukplug(){cout << "英國插座:英式規(guī)格" << endl;}
};

中國插座(適配者類Adaptee)

class chsoket_adaptee  //適配者
{
public:void chplug(){cout << "中式規(guī)格" << endl;}
};
  1. 類適配器

英式插座適配器(適配器類Adapter)

class uksocket_adapter : public uksoket_target,public chsocket_adaptee
{
public:void ukplug() override{cout << "英國插座:";chplug();}
};

測試方法與主函數(shù)

void test()
{uksoket_target* uk1 = new uksoket_target();uksoket_target* uk2 = new uksocket_adapter();uk1->ukplug();uk2->ukplug();delete uk1;uk1 = nullptr;delete uk2;uk2 = nullptr;
}int main()
{test();return 0;
}
  1. 對象適配器

英國適配器(適配器類Adapter)

class uksocket_adapter : public uksoket_target
{
private:chsocket_adaptee* ch;
public:void ukplug() override{cout << "英國插座:";ch->chplug();}
};

測試方法與主函數(shù)

void test()
{uksoket_target* uk1 = new uksoket_target();uksoket_target* uk2 = new uksocket_adapter();uk1->ukplug();uk2->ukplug();delete uk1;uk1 = nullptr;delete uk2;uk2 = nullptr;
}int main()
{test();return 0;
}

五,優(yōu)缺點

優(yōu)點

  • 將目標(biāo)類和適配器類解耦。通過引入一個適配器類來重用現(xiàn)有的適配者類,而無須修改原有的代碼。

  • 增加了類的透明性和復(fù)用性,將具體的實現(xiàn)封裝在適配器類中,對于客戶端類來說是透明的,而且提高了適配器的復(fù)用性。

  • 靈活性和擴展性都非常好,符合開閉原則

缺點

  • 過多地使用適配器,會讓系統(tǒng)非常零亂,不易整體進行把握。比如,明明看到調(diào)用的是 A 接口,其實內(nèi)部被適配成了 B 接口的實現(xiàn),一個系統(tǒng)如果太多出現(xiàn)這種情況,無異于一場災(zāi)難。因此如果不是很有必要,可以不使用適配器,而是直接對系統(tǒng)進行重構(gòu)。

六,適用場景

  • 當(dāng)想使用一個已存在的類,而它的接口不符合需求時。

  • 你想創(chuàng)建一個可復(fù)用的類,該類可以與其他不相關(guān)的類或不可預(yù)見的類協(xié)同工作。

http://www.risenshineclean.com/news/37025.html

相關(guān)文章:

  • 在線做h5 的網(wǎng)站東莞免費建站公司
  • 網(wǎng)站過期了怎么辦外貿(mào)網(wǎng)站建設(shè)優(yōu)化
  • 國外科技感強的網(wǎng)站站長統(tǒng)計性寶app
  • 網(wǎng)站建設(shè)業(yè)務(wù)經(jīng)理崗位職責(zé)百度教育網(wǎng)站
  • 網(wǎng)站中間內(nèi)容做多大尺寸的那個推廣平臺好用
  • 江蘇省建設(shè)廳網(wǎng)站模板建站網(wǎng)頁
  • 湛江網(wǎng)頁設(shè)計培訓(xùn)性價比高seo的排名優(yōu)化
  • 中企動力網(wǎng)站站長之家統(tǒng)計
  • 女人學(xué)ui有前途嗎汕頭seo排名公司
  • 牛街網(wǎng)站建設(shè)2022年最新最有效的營銷模式
  • 天津網(wǎng)站設(shè)計公司排名優(yōu)幫云排名優(yōu)化
  • 網(wǎng)站手機端打不開凡科網(wǎng)站登錄入口
  • 淘客手機網(wǎng)站模板發(fā)布
  • 衡陽縣做淘寶網(wǎng)站建設(shè)內(nèi)存優(yōu)化大師
  • jsp做網(wǎng)站圖片怎么存儲談?wù)勀銓W(wǎng)絡(luò)營銷的認識
  • 深圳定制建站鄭州seo多少錢
  • 做網(wǎng)站 分辨率應(yīng)該是多少無錫網(wǎng)站制作優(yōu)化
  • 哪個網(wǎng)站做的最好百度競價ocpc投放策略
  • 新聞網(wǎng)站抓取做輿情監(jiān)測河北網(wǎng)絡(luò)推廣技術(shù)
  • 一個網(wǎng)絡(luò)空間做兩個網(wǎng)站楚雄今日頭條新聞
  • 徐州自助建站系統(tǒng)google框架三件套
  • 如何做網(wǎng)站域名解析seo推廣軟件品牌
  • 做外鏈網(wǎng)站有哪些廣州seo服務(wù)
  • 網(wǎng)站如何做se外貿(mào)推廣網(wǎng)站
  • 網(wǎng)站建設(shè)期末考試答案跨境電商培訓(xùn)機構(gòu)哪個靠譜
  • 地方網(wǎng)站需要什么手續(xù)成免費crm軟件有哪些優(yōu)點
  • 中山石岐網(wǎng)站建設(shè)重慶seo建站
  • 廊坊網(wǎng)站建設(shè)策劃經(jīng)典軟文廣告案例
  • 網(wǎng)站開發(fā)翻譯插件怎么推廣自己的微信
  • 網(wǎng)站建設(shè)服務(wù)內(nèi)容今天濟南剛剛發(fā)生的新聞