日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

设计模式:模板方法模式(C++)【喝咖啡还是喝茶】

發(fā)布時(shí)間:2025/3/15 c/c++ 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式:模板方法模式(C++)【喝咖啡还是喝茶】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

模板方法模式介紹

我們?cè)谲浖O(shè)計(jì)中經(jīng)常會(huì)有一些步驟是一樣的,只是實(shí)現(xiàn)不一樣,這種情況我們就可以使用模板方法模式。何為模板,就是有固定的步驟,可以復(fù)用嘛。來看看模板方法模式:定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類。模板方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些步驟。舉個(gè)簡單例子,拿我們泡茶和泡咖啡來說,都有 煮水、醞釀、沖泡咖啡、添加調(diào)料等 ,都是由固定步驟,但是他們的實(shí)現(xiàn)可能不一樣。這種情況,模板方法模式最合適了。

模板方法標(biāo)準(zhǔn)模型圖

模型圖 很簡單,主要就是將不確定的實(shí)現(xiàn) 進(jìn)行抽象,抽象類的模板方法按照固定步驟 調(diào)用還未實(shí)現(xiàn)的抽象方法。


喝咖啡還是喝茶案例

我們以沖泡咖啡和茶,來學(xué)習(xí)模板方法模式

模型圖


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

#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class AbstractMakeDrinks { public://水virtual void BoidWater() = 0;//醞釀virtual void Brew() = 0;//倒入杯中virtual void PourInCup() = 0;//添加調(diào)料virtual void AddSomething() = 0;//鉤子函數(shù) 可控制 是否執(zhí)行某部分算法virtual bool IsAddSomething(){return true;}//模板方法 根據(jù)套路生產(chǎn)飲料,套路(框架)已經(jīng)確定void MakeDrinks(){//1、煮水BoidWater();//2、醞釀飲料Brew();//3、倒入杯中PourInCup();//其余部分算法可以通過鉤子函數(shù)進(jìn)行控制 是否執(zhí)行//4、添加調(diào)料if (IsAddSomething()){AddSomething();}cout << endl;} }; class Tea :public AbstractMakeDrinks { public:Tea():isAddCondiment(false){}Tea(bool isAddCondiment){this->isAddCondiment = isAddCondiment;}//水virtual void BoidWater(){cout << "煮農(nóng)夫山泉水 ";}//醞釀virtual void Brew(){cout << "->沖泡鐵觀音 ";}//倒入杯中virtual void PourInCup(){cout << "->倒入茶杯中 ";}//添加調(diào)料virtual void AddSomething(){cout << "->加點(diǎn)檸檬 ";}//鉤子函數(shù) 可控制 是否執(zhí)行某部分算法virtual bool IsAddSomething(){return this->isAddCondiment;} private:bool isAddCondiment = false;//是否添加調(diào)料 ,默認(rèn)是原生態(tài) }; class Coffee :public AbstractMakeDrinks { public:Coffee() :isAddCondiment(false){}Coffee(bool isAddCondiment){this->isAddCondiment = isAddCondiment;}//水virtual void BoidWater(){cout << "煮自來水 ";}//醞釀virtual void Brew(){cout << "->沖泡咖啡 ";}//倒入杯中virtual void PourInCup(){cout << "->倒入咖啡杯中 ";}//添加調(diào)料virtual void AddSomething(){cout << "->加點(diǎn)糖、牛奶 " << endl;}//鉤子函數(shù) 可控制 是否執(zhí)行某部分算法virtual bool IsAddSomething(){return this->isAddCondiment;} private:bool isAddCondiment = false;//是否添加調(diào)料 ,默認(rèn)是原生態(tài) };//根據(jù)模板方法 生成東西 void GetDrinks(AbstractMakeDrinks* drink) {drink->MakeDrinks(); }int main(int argc, char *argv[]) {//獲取一杯 原生態(tài)茶cout << "原生態(tài)茶制作:" << endl;GetDrinks(new Tea);//帶調(diào)料的cout << "加料的茶制作:" << endl;GetDrinks(new Tea(true));//獲取一杯 原生態(tài)咖啡cout << "原生態(tài)咖啡制作:" << endl;GetDrinks(new Coffee);cout << "加料的咖啡制作:" << endl;//帶調(diào)料的GetDrinks(new Coffee(true));return EXIT_SUCCESS; }

運(yùn)行結(jié)果


總結(jié)

以上是生活随笔為你收集整理的设计模式:模板方法模式(C++)【喝咖啡还是喝茶】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天堂网中文在线 | 我要操av| 日韩在线观看视频网站 | 天天操中文字幕 | 福利精品在线 | 日韩激情av | 国产95在线| 不卡av中文字幕 | 清草视频| 亚洲第一偷拍 | 国产乱子伦农村叉叉叉 | 少妇性l交大片免费观看 | 亚洲午夜精品视频 | 欧美七区 | av看片在线 | av第一页 | 在线1区 | 最好看的日本字幕mv视频大全 | 中文字幕在线观看播放 | 久久网页 | 精品一区二区欧美 | 一区二区三区国产精品 | 在线观看av黄色 | 天堂国产一区二区三区 | 五月天综合色 | 香蕉精品视频在线观看 | 伊人天堂网| 精品一区二区三区蜜臀 | 神马午夜视频 | 激情小说视频在线 | 欧美巨乳在线 | 黄色高清片 | 荫道bbwbbb高潮潮喷 | 亚洲色图偷拍视频 | 成人福利在线 | 亚洲综合久久av一区二区三区 | 亚洲无码乱码精品国产 | www成人啪啪18软件 | 久久久久无码精品国产sm果冻 | 国产又粗又黄又爽又硬 | 亚洲久久一区二区 | 91看篇| 九色蝌蚪91 | 久久精品视频播放 | 一级裸体片 | 久久国产免费 | 天天澡天天狠天天天做 | 国产a精品 | 免费av网站在线观看 | 午夜激情福利在线 | 手机在线小视频 | 国产视频久久久久久久 | 欧美一级做a爰片久久高潮 久热国产精品视频 | 在线免费观看亚洲视频 | 国产91看片 | 老色鬼网站 | 亚洲综合一二三区 | 激情午夜影院 | 四虎成人永久免费视频 | 婷婷色婷婷开心五月四房播播 | 无码日韩精品视频 | 天天躁日日躁狠狠躁免费麻豆 | 中文字幕亚洲乱码熟女一区二区 | 欧美激情免费观看 | 色哟哟一区二区三区 | 久久久久在线视频 | 日本一区二区三区四区五区 | 国产美女自拍视频 | 先锋影音av资源在线观看 | 亚洲国产欧美在线人成 | 久久人人爽爽人人爽人人片av | 国产又猛又黄又爽 | 天天天天天天天干 | 男女羞羞的视频 | 日本十八禁视频无遮挡 | 久久入 | 91操操| 精品少妇人妻一区二区黑料社区 | 中文字幕一区二区三区人妻电影 | 围产精品久久久久久久 | av中文字幕免费在线观看 | 中文字幕亚洲一区二区三区 | 青娱乐最新视频 | 男人的天堂avav | 成年人免费在线视频 | 中文字幕国产视频 | 麻豆爱爱视频 | 久久精品一 | www.色在线 | 亚洲综合激情小说 | wwwav在线| 男生操男生网站 | 在线观看精品视频 | 成人毛片基地 | 亚洲一区二区综合 | 免费a视频 | 国产一区二区91 | 欧美精品欧美精品系列 | 狠狠的干狠狠的操 |