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;
}

运行结果:

C++设计模式详解之模板模式解析相关推荐

  1. C++设计模式详解之工厂模式解析

    C++ 工厂方法模式解析 工厂方法模式原则 让子类决定该创建的对象是什么,来达到将对象创建的过程.封装了对象创建的过程.实现了封装的目的.主要就是创建者类和产品类,让创建者自动绑定产品. 工厂方法模式 ...

  2. C++设计模式详解之外观模式解析

    C++ 外观模式 外观模式定义 外观模式提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用. 个人理解:外观模式,实际就是添加一层封装 比较简单 外观模式实例 ...

  3. C++设计模式详解之命令模式解析

    C++ 命令模式定义 命令模式将请求封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象. 个人理解: 命令模式,其实实质上就是去耦合的操作,让各个部分尽可能的关联性降低,以便修改或增加某些功 ...

  4. 模板模式详解、模板模式怎么用、模板模式模板代码

    模板模式详解.模板模式怎么用.模板模式模板代码 文章目录 模板模式详解.模板模式怎么用.模板模式模板代码 @[toc] 模板模式定义 使用场景 优点 代码实操 模板模式定义 在模板模式(Templat ...

  5. 23 种设计模式详解 代码实现全解析

    设计模式 Design Pattern 是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结,使用设计模式是为了可重用代码.让代码更容易被他人理解并且保证代码可靠性. 在<设计模式 ...

  6. Android设计模式详解之解释器模式

    前言 解释器模式是一种使用较少的行为型模式: 提供了一种解释语言的语法或表达式的方式,通过该接口解释一个特定的上下文. 定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示 ...

  7. Android设计模式详解之建造者模式

    前言 Builder模式是一种创建型设计模式. 定义:将一个复杂对象的创建与它的表示分离,使得同样的构造过程可以创建不同的表示. 使用场景: 相同的方法,不同的执行顺序,产生不同的事件结果时: 多个部 ...

  8. 设计模式详解:建造者模式

    今天来看一下创建新模式中的第五种模式:建造者模式.仍然是先看两张图,复习模式类型,加深记忆. 定义: 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Build ...

  9. Android设计模式详解之备忘录模式

    前言 备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态: 定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可以将该对象恢 ...

最新文章

  1. MyBatis学习总结[4]-ResultMap子元素
  2. Android监听事件
  3. 美图:已累计净购买价值约1亿美元的加密货币
  4. Word 2010—样式集
  5. 上级对下级用通知合适吗_【判断题】通知只能作为下行文使用,下级对上级不能使用通知。 ( )...
  6. kata-containers对接firecracker
  7. 计算机应用基础(专)【6】
  8. java的书写规范_java书写规范以及技巧
  9. java 数字1类型_java-1.基础与数据类型
  10. 资深HR告诉你,面试中你不知道的那些秘密!
  11. UIScrollView的重用机制的理解[转]
  12. 别告诉我你连线程池都不会用~ 一文搞懂线程池
  13. 程序员之家五一出行攻略(上)
  14. 苹果手机,电话号码(类似数字)显示为蓝色
  15. Fedora linux中下载更新火狐浏览器Firefox
  16. 小米一元流量magisk_薅不了羊毛了?小米一元流量业务即将停止运营
  17. 《赛博朋克2077》推出游戏概念艺术图海报
  18. html做3d的正方形,纯CSS绘制3D立方体
  19. ggplot2 多图排版
  20. 冒泡和快速排序的时间复杂度_凡人能看懂的冒泡排序和快速排序

热门文章

  1. 你真的理解BIO、NIO、AIO的区别吗?
  2. 为什么代码规范要求SQL语句不要过多的join?
  3. JSONOBject的fluentPut(key,value)方法:可链式设置元素
  4. Oracle EBS AP 发票放弃行
  5. python--DenyHttp项目(1)--socket编程:客户端与服务器端
  6. 指针 数组指针 指针数组 函数指针等说明。
  7. Web自动化测试中的接口测试
  8. 关闭线程的的三种方法
  9. WPF 中出现不同线程间操作的解决
  10. 一维数组所有元素是否大于_【C语言】- 指向一维数组元素的指针!你今天学习了吗?...