国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

溫州電子商務(wù)網(wǎng)站建設(shè)windows優(yōu)化大師有哪些功能

溫州電子商務(wù)網(wǎng)站建設(shè),windows優(yōu)化大師有哪些功能,WordPress評論后自動刷新,vps上的網(wǎng)站運行太慢現(xiàn)實世界中的例子 考慮一個招聘經(jīng)理的情況。一個人不可能為每一個職位都進行面試。根據(jù)職位空缺,她必須決定并將面試步驟委托給不同的人。 用簡單的話來說 它提供了一種將實例化邏輯委托給子類的方法。 維基百科的解釋 在基于類的編程中,工廠方法模式是…

現(xiàn)實世界中的例子

????????考慮一個招聘經(jīng)理的情況。一個人不可能為每一個職位都進行面試。根據(jù)職位空缺,她必須決定并將面試步驟委托給不同的人。

用簡單的話來說

????????它提供了一種將實例化邏輯委托給子類的方法。

維基百科的解釋

????????在基于類的編程中,工廠方法模式是一種創(chuàng)建型模式,它使用工廠方法來處理創(chuàng)建對象時無需指定將要創(chuàng)建對象的確切類的問題。這是通過調(diào)用工廠方法(在接口中指定并由子類實現(xiàn),或者在基類中實現(xiàn)并由派生類可選地重寫)來創(chuàng)建對象,而不是直接調(diào)用構(gòu)造函數(shù)來實現(xiàn)的。

編程示例:

????????以我們之前的招聘經(jīng)理為例,首先定義了一個Interviewer接口以及它的幾個實現(xiàn)類。

#include <iostream>
#include <memory>// 面試官接口
class Interviewer {
public:virtual void askQuestions() const = 0;virtual ~Interviewer() = default;
};// 開發(fā)人員類
class Developer : public Interviewer {
public:void askQuestions() const override {std::cout << "詢問關(guān)于設(shè)計模式的問題!" << std::endl;}
};// 社區(qū)執(zhí)行官類
class CommunityExecutive : public Interviewer {
public:void askQuestions() const override {std::cout << "詢問關(guān)于社區(qū)建設(shè)的問題" << std::endl;}
};// 招聘經(jīng)理抽象類
class HiringManager {
public:virtual ~HiringManager() = default;virtual std::unique_ptr<Interviewer> makeInterviewer() const = 0;void takeInterview() const {auto interviewer = makeInterviewer();interviewer->askQuestions();}
};// 開發(fā)經(jīng)理類
class DevelopmentManager : public HiringManager {
public:std::unique_ptr<Interviewer> makeInterviewer() const override {return std::make_unique<Developer>();}
};// 市場經(jīng)理類
class MarketingManager : public HiringManager {
public:std::unique_ptr<Interviewer> makeInterviewer() const override {return std::make_unique<CommunityExecutive>();}
};// 主函數(shù)演示功能
int main() {DevelopmentManager devManager;devManager.takeInterview(); // 輸出: 詢問關(guān)于設(shè)計模式的問題!MarketingManager marketingManager;marketingManager.takeInterview(); // 輸出: 詢問關(guān)于社區(qū)建設(shè)的問題。return 0;
}

Interviewer 接口

????????首先,我們有一個 Interviewer 接口,所有的面試官類都必須實現(xiàn)這個接口。

class Interviewer {
public:virtual void askQuestions() const = 0; // 純虛函數(shù),子類必須實現(xiàn)virtual ~Interviewer() = default; // 虛析構(gòu)函數(shù),確保子類析構(gòu)函數(shù)被正確調(diào)用
};

Developer 類和 CommunityExecutive 類

????????這兩個類實現(xiàn)了 Interviewer 接口。

class Developer : public Interviewer {
public:void askQuestions() const override {std::cout << "詢問關(guān)于設(shè)計模式的問題!" << std::endl;}
};class CommunityExecutive : public Interviewer {
public:void askQuestions() const override {std::cout << "詢問關(guān)于社區(qū)建設(shè)的問題" << std::endl;}
};

HiringManager 抽象類

????????HiringManager 是一個抽象類,它包含了一個工廠方法 makeInterviewer,用于創(chuàng)建具體的面試官。它還包含一個 takeInterview 方法,該方法使用工廠方法創(chuàng)建的面試官來進行面試。

class HiringManager {
public:virtual ~HiringManager() = default; // 虛析構(gòu)函數(shù)// 工廠方法,子類必須實現(xiàn),用于創(chuàng)建面試官virtual std::unique_ptr<Interviewer> makeInterviewer() const = 0;// 進行面試,使用工廠方法創(chuàng)建的面試官void takeInterview() const {auto interviewer = makeInterviewer();interviewer->askQuestions();}
};

具體的 HiringManager 子類

????????每個具體的招聘經(jīng)理類(如 DevelopmentManager 和 MarketingManager)實現(xiàn)了 HiringManager 類的工廠方法,以創(chuàng)建特定類型的面試官。

class DevelopmentManager : public HiringManager {
public:std::unique_ptr<Interviewer> makeInterviewer() const override {return std::make_unique<Developer>(); // 返回開發(fā)人員面試官}
};class MarketingManager : public HiringManager {
public:std::unique_ptr<Interviewer> makeInterviewer() const override {return std::make_unique<CommunityExecutive>(); // 返回社區(qū)執(zhí)行官面試官}
};

主函數(shù)

????????在主函數(shù)中,我們創(chuàng)建了 DevelopmentManager 和 MarketingManager 的實例,并調(diào)用 takeInterview 方法,展示了不同的面試過程。

int main() {DevelopmentManager devManager;devManager.takeInterview(); // 輸出: 詢問關(guān)于設(shè)計模式的問題!MarketingManager marketingManager;marketingManager.takeInterview(); // 輸出: 詢問關(guān)于社區(qū)建設(shè)的問題。return 0;
}

類圖:

關(guān)系說明

Interviewer 接口:

  • Interviewer 是一個接口,定義了 askQuestions 方法。
  • Developer 和 CommunityExecutive 類實現(xiàn)了 Interviewer 接口。

HiringManager 抽象類:

  • HiringManager 是一個抽象類,定義了工廠方法 makeInterviewer 和一個模板方法 takeInterview。
  • DevelopmentManager 和 MarketingManager 繼承了 HiringManager 并實現(xiàn)了 makeInterviewer 方法。

工廠方法模式:

  • HiringManager 類的 makeInterviewer 方法是一個工廠方法,它的具體實現(xiàn)由子類 DevelopmentManager 和 MarketingManager 提供。
  • DevelopmentManager 的 makeInterviewer 方法返回 Developer 對象。
  • MarketingManager 的 makeInterviewer 方法返回 CommunityExecutive 對象。

何時使用:

????????當(dāng)類中包含一些通用處理邏輯,但所需的子類是在運行時動態(tài)決定的,或者換句話說,當(dāng)客戶端不知道它可能需要哪個具體的子類時,這種模式非常有用。通過定義一個抽象類或接口以及一個或多個工廠方法,可以允許子類在運行時決定實例化哪個類。這增加了代碼的靈活性和可擴展性,因為新的子類可以在不修改現(xiàn)有代碼的情況下被引入和使用。

????????在上面的例子中,HiringManager類提供了一個通用的takeInterview方法,但具體的面試官(Interviewer)是在子類中通過makeInterviewer工廠方法動態(tài)決定的。這樣,當(dāng)需要添加新的面試官類型時,只需創(chuàng)建一個新的實現(xiàn)Interviewer接口的類,并在相應(yīng)的招聘經(jīng)理子類中重寫makeInterviewer方法即可。

http://m.aloenet.com.cn/news/45211.html

相關(guān)文章:

  • 做網(wǎng)站內(nèi)容來源百度收錄提交網(wǎng)站后多久收錄
  • 宜春網(wǎng)站建設(shè)公司聯(lián)系方式百度seo 站長工具
  • 沈陽百度首頁優(yōu)化安徽seo優(yōu)化規(guī)則
  • 哈爾濱cms網(wǎng)站建設(shè)廣州網(wǎng)站建設(shè)系統(tǒng)
  • 建設(shè)一個導(dǎo)航網(wǎng)站百度搜索怎么優(yōu)化
  • 添加網(wǎng)站到百度中國十大軟件外包公司
  • 網(wǎng)站logo怎么做透明網(wǎng)絡(luò)運營課程培訓(xùn)班
  • 貴州有網(wǎng)站的企業(yè)杭州seo推廣服務(wù)
  • 做網(wǎng)站推廣前途百度問答入口
  • 網(wǎng)頁版企業(yè)郵箱網(wǎng)絡(luò)優(yōu)化的流程
  • 什么網(wǎng)站免費建設(shè)全網(wǎng)網(wǎng)站快速排名推廣軟件
  • 做教育機構(gòu)網(wǎng)站百度收錄提交入口網(wǎng)址
  • 網(wǎng)站服務(wù)器維護今天nba新聞最新消息
  • 網(wǎng)站上線需要哪些步驟2345電腦版網(wǎng)址導(dǎo)航
  • 怎樣做自己的國外網(wǎng)站網(wǎng)站收錄免費咨詢
  • 如何在word上做網(wǎng)站網(wǎng)址房地產(chǎn)最新消息
  • 網(wǎng)絡(luò)公司網(wǎng)站建設(shè)彩鈴樣本軟文推廣文案范文
  • 廣州網(wǎng)站建設(shè) 廣州亦客網(wǎng)絡(luò)網(wǎng)絡(luò)推廣員工作好做嗎
  • 模版網(wǎng)站做支付功能小程序開發(fā)公司哪里強
  • 導(dǎo)購網(wǎng)站如何做淘寶客站長平臺網(wǎng)站
  • 做網(wǎng)站的域名怎么申請seo關(guān)鍵詞優(yōu)化的技巧和方法
  • 網(wǎng)站怎么做移動圖片大全學(xué)生個人網(wǎng)頁優(yōu)秀模板
  • dreamweaver網(wǎng)站制作步驟360收錄
  • 廣州商城網(wǎng)站建設(shè)公司湖南靠譜seo優(yōu)化
  • 沈陽模板 網(wǎng)站建設(shè)淘寶網(wǎng)店代運營正規(guī)公司
  • 軟文營銷的缺點沈陽關(guān)鍵詞快照優(yōu)化
  • 萬網(wǎng)個人網(wǎng)站備案查詢新聞投稿
  • wordpress 南非政府網(wǎng)絡(luò)seo招聘
  • 高端手機網(wǎng)站 制作公司鄭州百度推廣開戶
  • 建設(shè)網(wǎng)站模板免費百度掃一掃識別圖片在線