设计模式之模板模式(C++实现)

原创 2016年06月01日 11:51:28

模板模式即定义一个操作中的算法的骨架,而将一些具体步骤延迟到子类中。模板使得子类可以不改变一个算法的结构即可重新定义算法的某些特定步骤。

例如,现在老师在黑板上写题目,学生们要把题目抄到本子上,并且写下自己的答案,我们可以把抄题目和写答案放到父类,而所给出的答案放到子类

/*************************************************************************Title.h*******************************************************************************************/

#include <iostream>
#include <string>
#pragma once;
using namespace std;

class Title
{
public:
	void TestQuestion()
	{
		cout<<"程序员最喜欢的事:A、编码 B、撩妹 C、偷懒"<<endl;
		cout<<"您选择的答案是:"<<answer()<<endl;
	};
	virtual string answer() = 0;
};

/************************************************************************StudentA.h*******************************************************************************************/

#include "Title.h"

class StudentA : public Title
{
public:
	string answer()
	{
		return "A";
	}
};
/************************************************************************StudentB.h*******************************************************************************************/

#include "Title.h"

class StudentB : public Title
{
public:
	string answer()
	{
		return "C";
	}
};

/************************************************************************main.cpp*******************************************************************************************/

#include "StudentA.h"
#include "StudentB.h"

int main()
{
	Title *studentA = new StudentA;
	Title *studentB = new StudentB;
	studentA->TestQuestion();
	studentB->TestQuestion();
	getchar();
	return 0;
}



相关文章推荐

Head First设计模式C++实现--第八章:模板(Template)模式

 模板(Template)模式

我所理解的设计模式(C++实现)——模板方法模式(Template Method Pattern)

概述:      我们最近在开发一个支持多种压缩类型文件的解压缩且制作成pdf的一个应用。对我们的架构来说我们需要支持多种压缩文件类型,但却有固定的操作顺序(先解压缩,在读取里面的文件分析、制作pd...

设计模式---模板模式(C++实现)

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 ...

最常用的设计模式---模板方法模式(C++实现)

模板方法模式是设计模式行为型中最简单的一种设计模式。在实际中你甚至可能经常用到,只是你自己不知道它是一种设计模式罢了。 模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子...

C++ Exceptional 模板设计模式(Template Design Model)

首先看一下下面一段代码:class GenericTableAlgorithm { public: GenericTableAlgorithm(const string& table); ...
  • chpeui
  • chpeui
  • 2016年03月13日 23:39
  • 176

Spring整合JDBC模板方法设计模式之基于继承的实现

Spring整合JDBC模板方法设计模式之基于继承的实现: 模板设计模式简单描述: 把相同的部分提取出来,当我们运行的时候自动往里面设置值,在JdbcTemplate 的源代码中得execute()....
  • rzg813
  • rzg813
  • 2014年09月23日 00:13
  • 2765

设计模式C++实现(5)——原型模式、模板方法模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最...

模板设计模式_组合&继承实现

package org.test.spring.template; /** * 基于继承的模版设计模式! * @author asus_n56 * */ public abstract cla...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式之模板模式(C++实现)
举报原因:
原因补充:

(最多只允许输入30个字)