/* 小魚號(hào)的代碼日志
* 設(shè)計(jì)模式
* 模板方法
* 現(xiàn)實(shí)例子:
* 打豆?jié){的步驟
* 1 選原料,2加配料,3浸泡,4打磨
* 原味豆?jié){ 什么都不加
* 紅豆豆?jié){ 需要加紅豆
* 花生豆?jié){ 需要加花生
* ...
* 加了不同的配料浸泡時(shí)間可能不同。。
*/
#include<iostream>
using namespace std;
//抽象的豆?jié){
class AbsSoyaMilk
{
public:
//制作豆?jié){
void make()
{
select();
add();
soak();
beat();
}
protected:
virtual void add() = 0; //2加配料
virtual void soak() = 0; //3 浸泡
private:
//1選原料
void select()
{
cout << "select perfect soybeab" << endl;
}
//4打豆?jié){
void beat()
{
cout << "start beat soyamilk" << endl;
}
};
//原味豆?jié){
class OriginalSoyaMilk : public AbsSoyaMilk
{
void add()
{
cout << "add nothing " << endl;
}
void soak()
{
cout << "soak 1 hour " << endl;
}
};
//紅豆豆?jié){
class RedBeansSoyaMilk : public AbsSoyaMilk
{
void add()
{
cout << "add read beans " << endl;
}
void soak()
{
cout << "soak 1.5 hour " << endl;
}
};
//花生豆?jié){
class PeanutSoyaMilk : public AbsSoyaMilk
{
void add()
{
cout << "add Peanut " << endl;
}
void soak()
{
cout << "soak 1.8 hour " << endl;
}
};
void testTemplateMethod()
{
cout << "TemplateMethod:" << endl;
AbsSoyaMilk* soya = new OriginalSoyaMilk;
cout << "make Original soyamilk" << endl;
soya->make();
cout << "=========================" << endl;
cout << "make readbeans soyamilk" << endl;
soya = new RedBeansSoyaMilk;
soya->make();
cout << "=========================" << endl;
cout << "make peanut soyamilk" << endl;
soya = new PeanutSoyaMilk;
soya->make();
}
【C++設(shè)計(jì)模式】模板方法 之 打豆?jié){
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 模板方法模式:一種行為型設(shè)計(jì)模式 應(yīng)用場(chǎng)景:模板方法是一種代碼復(fù)用的基本技術(shù),定義了一個(gè)操作中的算法骨架,而將一些...
- 模板方法模式是設(shè)計(jì)模式行為型中最簡(jiǎn)單的一種設(shè)計(jì)模式。在實(shí)際中你甚至可能經(jīng)常用到,只是你自己不知道它是一種設(shè)計(jì)模式罷...