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

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

學(xué)網(wǎng)站開發(fā)哪個好百度推廣的優(yōu)化軟件

學(xué)網(wǎng)站開發(fā)哪個好,百度推廣的優(yōu)化軟件,公司有些網(wǎng)站打不開,王燁琳介紹 橋接模式將抽象部分與其實現(xiàn)部分分離,使它們都可以獨立地變化。它是一種對象結(jié)構(gòu)型模式,又稱為柄體模式或接口模式 實現(xiàn) myclass.h // // Created by yuwp on 2024/1/12. //#ifndef DESIGNPATTERNS_MYCLASS_H #define DESIGNPATTERNS_MYCLASS_H#…

介紹

? ? ? ? 橋接模式將抽象部分與其實現(xiàn)部分分離,使它們都可以獨立地變化。它是一種對象結(jié)構(gòu)型模式,又稱為柄體模式或接口模式

實現(xiàn)

myclass.h

//
// Created by yuwp on 2024/1/12.
//#ifndef DESIGNPATTERNS_MYCLASS_H
#define DESIGNPATTERNS_MYCLASS_H#include <iostream>class Implementor { // 實現(xiàn)抽象類,例如顏料
public:virtual void operationImpl() = 0;
};class Abstract {    // 抽象類,例如毛筆
public:virtual void operation() = 0;
protected:Implementor *m_imp;
};class RefinedAbstraction : public Abstract {    // 擴充抽象類,例如大號毛筆
public:RefinedAbstraction(Implementor *imp);~RefinedAbstraction();void operation() override;
};class ConcreteImplementorA : public Implementor {   // 具體實現(xiàn)類,例如紅色顏料
public:void operationImpl() override;
};#endif //DESIGNPATTERNS_MYCLASS_H

myclass.cpp

//
// Created by yuwp on 2024/1/12.
//#include "myclass.h"RefinedAbstraction::RefinedAbstraction(Implementor *imp) {m_imp = imp;
}RefinedAbstraction::~RefinedAbstraction() {}void RefinedAbstraction::operation() {if (m_imp) {m_imp->operationImpl();}std::cout << "RefinedAbstraction::operation()" << std::endl;
}void ConcreteImplementorA::operationImpl() {std::cout << "ConcreteImplementorA::operationImpl()" << std::endl;
}

main.cpp

#include <iostream>
#include <mutex>
#include "myclass.h"int main() {Implementor *imp = new ConcreteImplementorA();Abstract *ab = new RefinedAbstraction(imp);ab->operation();return 0;
}

總結(jié)

優(yōu)點

? ? ? ? 1.?分離抽象接口及其實現(xiàn)部分。橋接模式使用“對象間的關(guān)聯(lián)關(guān)系”解耦了抽象和實現(xiàn)之間固有的綁定關(guān)系,使得抽象和實現(xiàn)可以沿著各自的維度來變化(即抽象和實現(xiàn)不再在同一個繼承層次結(jié)構(gòu)中,而是“子類化”它們,使它們各自都具有自己的子類,以便任意組合子類,從而獲得多維度組合對象)

? ? ? ? 2.?在很多情況下,橋接模式可以取代多層繼承方案。多層繼承方案違背了單一職責(zé)原則,復(fù)用性較差,且類的個數(shù)非常多。橋接模式是比多層繼承方案更好的解決方法,它極大地減少了子類的個數(shù)。

? ? ? ? 3.?橋接模式提高了系統(tǒng)的可擴展性。在兩個變化維度中任意擴展一個維度,都不需要修改原有系統(tǒng),符合開閉原則。

缺點

? ? ? ? 1.?橋接模式的使用會增加系統(tǒng)的理解與設(shè)計難度。由于關(guān)聯(lián)關(guān)系建立在抽象層,要求開發(fā)者一開始就針對抽象層進行設(shè)計與編程。

? ? ? ? 2.?橋接模式要求正確識別出系統(tǒng)中兩個獨立變化的維度,因此其使用范圍具有一定的局限性,如何正確識別兩個獨立維度也需要一定的經(jīng)驗積累。

適用場景

? ? ? ? 1.?如果一個系統(tǒng)需要在抽象類和具體類之間增加更多的靈活性,避免在兩個層次之間建立靜態(tài)的繼承關(guān)系,通過橋接模式可以使它們在抽象層建立一個關(guān)聯(lián)關(guān)系。

? ? ? ? 2.?抽象部分和實現(xiàn)部分可以以繼承的方式獨立擴展而互不影響,在程序運行時可以動態(tài)地將一個抽象類子類的對象和一個實現(xiàn)類子類的對象進行組合,即系統(tǒng)需要對抽象類角色和實現(xiàn)類角色進行動態(tài)耦合。

? ? ? ? 3.?一個類存在兩個(或多個)獨立變化的維度,且這兩個(或多個)維度都需要獨立進行擴展。

? ? ? ? 4.?對于那些不希望使用繼承或因為多層繼承導(dǎo)致系統(tǒng)類的個數(shù)急劇增加的系統(tǒng),橋接模式尤為適用。

練習(xí)

myclass.h

//
// Created by yuwp on 2024/1/12.
//#ifndef DESIGNPATTERNS_MYCLASS_H
#define DESIGNPATTERNS_MYCLASS_H#include <iostream>class FileFormat { // 實現(xiàn)抽象類
public:virtual void toFile(std::string data, std::string file) = 0;
};class Database {    // 抽象類
public:virtual void trans() = 0;protected:FileFormat *m_fileFormat;
};class MysqlDatabase : public Database {    // 擴充抽象類
public:MysqlDatabase(FileFormat *fileFormat);void trans() override;};class RedisDatabase : public Database {
public:RedisDatabase(FileFormat *fileFormat);void trans() override;protected:FileFormat *m_fileFormat;
};class TXTFileFormat : public FileFormat {   // 具體實現(xiàn)類,例如紅色顏料
public:void toFile(std::string data, std::string file) override;
};class XMLFileFormat : public FileFormat {
public:void toFile(std::string data, std::string file) override;
};class PDFFileFormat : public FileFormat {
public:void toFile(std::string data, std::string file) override;
};#endif //DESIGNPATTERNS_MYCLASS_H

myclass.cpp

//
// Created by yuwp on 2024/1/12.
//#include "myclass.h"MysqlDatabase::MysqlDatabase(FileFormat *fileFormat) {m_fileFormat = fileFormat;
}void MysqlDatabase::trans() {std::string data = "mysql";if (m_fileFormat) {m_fileFormat->toFile(data, "mysql");}
}RedisDatabase::RedisDatabase(FileFormat *fileFormat) {m_fileFormat = fileFormat;
}void RedisDatabase::trans() {std::string data = "redis";if (m_fileFormat) {m_fileFormat->toFile(data, "redis");}
}void TXTFileFormat::toFile(std::string data, std::string file) {std::cout << "\"" << data << "\"" << "轉(zhuǎn)換為\"" << file << ".txt\"" << std::endl;
}void XMLFileFormat::toFile(std::string data, std::string file) {std::cout << "\"" << data << "\"" << "轉(zhuǎn)換為\"" << file << ".xml\"" << std::endl;
}void PDFFileFormat::toFile(std::string data, std::string file) {std::cout << "\"" << data << "\"" << "轉(zhuǎn)換為\"" << file << ".pdf\"" << std::endl;
}

main.cpp

#include <iostream>
#include <mutex>
#include "myclass.h"int main() {FileFormat *txtFormat = new TXTFileFormat();FileFormat *xmlFormat = new XMLFileFormat();FileFormat *pdfFormat = new PDFFileFormat();Database *database = new MysqlDatabase(txtFormat);database->trans();delete database;database = new MysqlDatabase(xmlFormat);database->trans();delete database;database = new MysqlDatabase(pdfFormat);database->trans();delete database;database = new RedisDatabase(txtFormat);database->trans();delete database;database = new RedisDatabase(xmlFormat);database->trans();delete database;database = new RedisDatabase(pdfFormat);database->trans();delete txtFormat;delete xmlFormat;delete pdfFormat;return 0;
}

http://m.risenshineclean.com/news/63149.html

相關(guān)文章:

  • 西雙版納網(wǎng)站制作公司百度集團股份有限公司
  • b2c網(wǎng)站有哪些類型百度手機助手app官方下載
  • 免費域名x網(wǎng)站怎么學(xué)seo基礎(chǔ)
  • 淄博網(wǎng)站建設(shè)專家湖北短視頻seo營銷
  • 哈爾濱網(wǎng)站建設(shè)價格企業(yè)文化墻
  • 個人站長做網(wǎng)站seo網(wǎng)站優(yōu)化培訓(xùn)找哪些
  • 做百科權(quán)威網(wǎng)站有哪些淘寶關(guān)鍵詞優(yōu)化技巧
  • 建設(shè)微信網(wǎng)站的流程圖青島seo外包公司
  • 網(wǎng)站制作字怎么放在圖上面策劃公司排行榜
  • 龍巖到永定seo技術(shù)大師
  • 建站工具搭建前臺網(wǎng)站seo關(guān)鍵詞優(yōu)化排名
  • 安慶網(wǎng)站設(shè)計百度拍照搜索
  • vs2015 asp網(wǎng)站開發(fā)360優(yōu)化大師app
  • php網(wǎng)站模板網(wǎng)站排名首頁前三位
  • wordpress h1標(biāo)簽優(yōu)化福州seo
  • 臺州seo網(wǎng)站推廣費用昆明seo排名
  • 簡單網(wǎng)站制作實例網(wǎng)絡(luò)營銷品牌案例
  • 專業(yè)網(wǎng)站建設(shè)制作價格網(wǎng)絡(luò)營銷師培訓(xùn)費用是多少
  • 網(wǎng)站排版設(shè)計欣賞哈爾濱網(wǎng)站優(yōu)化流程
  • 優(yōu)設(shè)網(wǎng)專利廣西網(wǎng)絡(luò)優(yōu)化seo
  • 商丘做網(wǎng)站用什么程序全網(wǎng)營銷系統(tǒng)是不是傳銷
  • 微信公眾號模板無錫seo公司
  • 地圖網(wǎng)站模板google adwords
  • 太原商城網(wǎng)站建設(shè)啦啦啦資源視頻在線觀看8
  • 新的網(wǎng)絡(luò)營銷方法天津seo培訓(xùn)
  • 常州做網(wǎng)站找哪家好寧波seo優(yōu)化公司
  • 電子商務(wù)專業(yè)是學(xué)什么的做網(wǎng)站怎么優(yōu)化
  • 17網(wǎng)站一起做網(wǎng)店 每日新款阿里大數(shù)據(jù)平臺
  • 建網(wǎng)站新科網(wǎng)站建設(shè)泰州百度公司代理商
  • 調(diào)用其他網(wǎng)站文章列表網(wǎng)絡(luò)營銷自學(xué)網(wǎng)站