概述
// 定义:定义一个操作中的算法框架,将一些步骤延迟到子类中实现
//
// 模式举例:去下馆子吃饭,分为点单,吃什么,厨师注意,买单
// 等事项,其中点单和买单是固定的,吃什么和厨师注
// 意什么灵活多变
//
// 模式实战经验:网络封包的串行化和反串行化
//
//
#include<iostream>
using namespace std;
class ChiFan
{
public:
void XiaGuanZi()
{
dianDan();
chiDongXi();
zhuYiShiXiang();
maiDan();
}
protected:
//公用方法,在基类中实现非虚函数
void dianDan()
{
cout <<"叫服务员,点单"<<endl;
}
//纯虚函数,子类必须实现
virtual void chiDongXi()=0;
//钩子方法,可重写,可不重写,虚函数
virtual void zhuYiShiXiang(){}
void maiDan()
{
cout <<"叫服务员,买单"<<endl;
}
};
//吃面条
class ChiMian : public ChiFan
{
protected:
virtual void chiDongXi()
{
cout <<"来碗面条"<<endl;
}
virtual void zhuYiShiXiang()
{
cout <<"面条多放辣子"<<endl;
}
};
//吃川菜
class ChiChuanCai : public ChiFan
{
protected:
virtual void chiDongXi()
{
cout <<"上川菜"<<endl;
}
virtual void zhuYiShiXiang()
{
cout <<"做菜不要放香菜"<<endl;
}
};
int main()
{
ChiFan * chifan = new ChiMian();
chifan->XiaGuanZi();
return 0;
}
最后
以上就是怕孤单酒窝为你收集整理的3_2 TemplateMethodMode 模板方法模式的全部内容,希望文章能够帮你解决3_2 TemplateMethodMode 模板方法模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复