设计模式之模板模式(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;
}



【java设计模式】之 模板方法(Template Method)模式

1. 模板方法的一个实例         这一节主要来学习一下设计模式中的模板方法模式。我们先来看一个例子:假如现在老板让你做一个汽车的模型,要求只要完成基本功能即可,不考虑扩展性,那你会怎么做呢?...
  • eson_15
  • eson_15
  • 2016年05月06日 08:57
  • 3839

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

Spring整合JDBC模板方法设计模式之基于组合的实现: 模板设计模式指的是将相应的模板方法提取出来在一个专门的一个位置定义,然后把相同调用过程的操作通过模板实现。 对于模板设计模式,一般有2中方式...
  • rzg813
  • rzg813
  • 2014年09月23日 01:03
  • 3088

我所理解的设计模式(C++实现)——策略模式(Strategy Pattern)

每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。 而策略模式就是对算法进行包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通...
  • LCL_data
  • LCL_data
  • 2013年08月24日 10:59
  • 12658

Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

  • 2013年04月17日 16:36
  • 1.93MB
  • 下载

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

 模板(Template)模式
  • FightForProgrammer
  • FightForProgrammer
  • 2014年07月06日 21:40
  • 938

大话设计模式--模板方法模式 TemplateMethod -- C++ 实现

1. 模板方法模式: 定义一个操作中的算法骨架,而将一些操作延迟到子类, 模板方法模式使得子类可以不改变一个算法的结构既可以重定义该算法的某些特定步骤。   当不变和可变的行为在方法的子类实现中混...
  • xj626852095
  • xj626852095
  • 2013年10月09日 11:33
  • 432

设计模式之模板方法模式 c++实现和详细分析

模板方法模式:采用继承的方式,将逻辑(算法)框架放在抽象基类中,并定义好细节的接口,子类中实现细节。【注释 1】...
  • hnust_xiehonghao
  • hnust_xiehonghao
  • 2014年07月05日 17:26
  • 761

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

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

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

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

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

概述:      我们最近在开发一个支持多种压缩类型文件的解压缩且制作成pdf的一个应用。对我们的架构来说我们需要支持多种压缩文件类型,但却有固定的操作顺序(先解压缩,在读取里面的文件分析、制作pd...
  • lixingying567
  • lixingying567
  • 2015年06月06日 15:21
  • 258
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式之模板模式(C++实现)
举报原因:
原因补充:

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