C++设计模式详解之模板模式解析

C++ 模板方法模式解析

模板方法模式定义

模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现

模板方法模式实例

  • 以考试为例,考数学和考语文的过程几乎都是一样的,就是准备考试,背书,写试卷,不同点在于 写试卷,一个是写语文试卷,一个是写数学试卷,那么就可以把写试卷的过程 用不同子类实现

头文件:

//模板方法模式实例

//常规准备考试
class  PreSubject
{
public:
	void writeNote();//记笔记
	void reciteBook();//背诵
	virtual void writeTest() = 0; //做试卷
};

class PreMathSubject:public PreSubject
{
public:
	void writeTest();
};

class PreChineseSubject:public PreSubject
{
public:
	void writeTest();
};

实现文件:

// ModelMethod.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "ModelMethod.h"

using namespace std;

void PreSubject::reciteBook()
{
	cout <<"背诵" <<endl;
}

void PreSubject::writeNote()
{
	cout << "写笔记" << endl;
	writeTest();
}

void PreMathSubject::writeTest()
{
cout << "写数学考卷" << endl;
}

void PreChineseSubject::writeTest()
{
	cout << "写语文考卷" << endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
	PreSubject * cur_Chinese = new PreChineseSubject();
	cur_Chinese->writeNote();
	PreSubject * cur_Math = new PreMathSubject();
	cur_Math->writeNote();
	delete cur_Math;
	delete cur_Chinese;
	system("pause");
	return 0;
}


运行结果:

发布了365 篇原创文章 · 获赞 80 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/Giser_D/article/details/103894868
今日推荐