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

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

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

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

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

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

用簡(jiǎn)單的話來(lái)說(shuō)

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

維基百科的解釋

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

編程示例:

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

#include <iostream>
#include <memory>// 面試官接口
class Interviewer {
public:virtual void askQuestions() const = 0;virtual ~Interviewer() = default;
};// 開(kāi)發(fā)人員類
class Developer : public Interviewer {
public:void askQuestions() const override {std::cout << "詢問(wèn)關(guān)于設(shè)計(jì)模式的問(wèn)題!" << std::endl;}
};// 社區(qū)執(zhí)行官類
class CommunityExecutive : public Interviewer {
public:void askQuestions() const override {std::cout << "詢問(wèn)關(guān)于社區(qū)建設(shè)的問(wèn)題" << 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();}
};// 開(kāi)發(fā)經(jīng)理類
class DevelopmentManager : public HiringManager {
public:std::unique_ptr<Interviewer> makeInterviewer() const override {return std::make_unique<Developer>();}
};// 市場(chǎng)經(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(); // 輸出: 詢問(wèn)關(guān)于設(shè)計(jì)模式的問(wèn)題!MarketingManager marketingManager;marketingManager.takeInterview(); // 輸出: 詢問(wèn)關(guān)于社區(qū)建設(shè)的問(wèn)題。return 0;
}

Interviewer 接口

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

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

Developer 類和 CommunityExecutive 類

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

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

HiringManager 抽象類

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

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

具體的 HiringManager 子類

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

class DevelopmentManager : public HiringManager {
public:std::unique_ptr<Interviewer> makeInterviewer() const override {return std::make_unique<Developer>(); // 返回開(kāi)發(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 的實(shí)例,并調(diào)用 takeInterview 方法,展示了不同的面試過(guò)程。

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

類圖:

關(guān)系說(shuō)明

Interviewer 接口:

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

HiringManager 抽象類:

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

工廠方法模式:

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

何時(shí)使用:

????????當(dāng)類中包含一些通用處理邏輯,但所需的子類是在運(yùn)行時(shí)動(dòng)態(tài)決定的,或者換句話說(shuō),當(dāng)客戶端不知道它可能需要哪個(gè)具體的子類時(shí),這種模式非常有用。通過(guò)定義一個(gè)抽象類或接口以及一個(gè)或多個(gè)工廠方法,可以允許子類在運(yùn)行時(shí)決定實(shí)例化哪個(gè)類。這增加了代碼的靈活性和可擴(kuò)展性,因?yàn)樾碌淖宇惪梢栽诓恍薷默F(xiàn)有代碼的情況下被引入和使用。

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

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

相關(guān)文章:

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