C++ 设计模式 —— 23.模板方法模式
2020-01-16 本文已影响0人
JeremyYv
-
模板方法模式:一种行为型设计模式
-
应用场景:
模板方法是一种代码复用的基本技术,定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。
在使用模板方法时,很重要的一点是模板方法应当指明哪些操作是可以被重写的,以及哪些是必须被重写的。
此设计模式比较简单,直接看代码吧。
以下是模板方法模式的简单代码实现
#include <iostream>
using namespace std;
//默认的模板方法类
class DefaultTemplate
{
public:
//固定的模板方法流程
void TemplateMethod()
{
Step1();
Step2();
Step3();
}
private:
virtual void Step1()
{
cout << "Default Step1" << endl;
}
virtual void Step2()
{
cout << "Default Step2" << endl;
}
virtual void Step3()
{
cout << "Default Step3" << endl;
}
};
//重写步骤1、3
class NewTemplate:public DefaultTemplate
{
private:
virtual void Step1()
{
cout << "New Step1" << endl;
}
virtual void Step3()
{
cout << "New Step3" << endl;
}
};
主函数中的使用
int main()
{
DefaultTemplate oDefault;
oDefault.TemplateMethod();
NewTemplate oNew;
oNew.TemplateMethod();
return 0;
}
控制台输出结果
Default Step1
Default Step2
Default Step3
New Step1
Default Step2
New Step3
如有错误,欢迎指正