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;
}
运行结果:
C++设计模式详解之模板模式解析相关推荐
- C++设计模式详解之工厂模式解析
C++ 工厂方法模式解析 工厂方法模式原则 让子类决定该创建的对象是什么,来达到将对象创建的过程.封装了对象创建的过程.实现了封装的目的.主要就是创建者类和产品类,让创建者自动绑定产品. 工厂方法模式 ...
- C++设计模式详解之外观模式解析
C++ 外观模式 外观模式定义 外观模式提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用. 个人理解:外观模式,实际就是添加一层封装 比较简单 外观模式实例 ...
- C++设计模式详解之命令模式解析
C++ 命令模式定义 命令模式将请求封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象. 个人理解: 命令模式,其实实质上就是去耦合的操作,让各个部分尽可能的关联性降低,以便修改或增加某些功 ...
- 模板模式详解、模板模式怎么用、模板模式模板代码
模板模式详解.模板模式怎么用.模板模式模板代码 文章目录 模板模式详解.模板模式怎么用.模板模式模板代码 @[toc] 模板模式定义 使用场景 优点 代码实操 模板模式定义 在模板模式(Templat ...
- 23 种设计模式详解 代码实现全解析
设计模式 Design Pattern 是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结,使用设计模式是为了可重用代码.让代码更容易被他人理解并且保证代码可靠性. 在<设计模式 ...
- Android设计模式详解之解释器模式
前言 解释器模式是一种使用较少的行为型模式: 提供了一种解释语言的语法或表达式的方式,通过该接口解释一个特定的上下文. 定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示 ...
- Android设计模式详解之建造者模式
前言 Builder模式是一种创建型设计模式. 定义:将一个复杂对象的创建与它的表示分离,使得同样的构造过程可以创建不同的表示. 使用场景: 相同的方法,不同的执行顺序,产生不同的事件结果时: 多个部 ...
- 设计模式详解:建造者模式
今天来看一下创建新模式中的第五种模式:建造者模式.仍然是先看两张图,复习模式类型,加深记忆. 定义: 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Build ...
- Android设计模式详解之备忘录模式
前言 备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态: 定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可以将该对象恢 ...
最新文章
- MyBatis学习总结[4]-ResultMap子元素
- Android监听事件
- 美图:已累计净购买价值约1亿美元的加密货币
- Word 2010—样式集
- 上级对下级用通知合适吗_【判断题】通知只能作为下行文使用,下级对上级不能使用通知。 ( )...
- kata-containers对接firecracker
- 计算机应用基础(专)【6】
- java的书写规范_java书写规范以及技巧
- java 数字1类型_java-1.基础与数据类型
- 资深HR告诉你,面试中你不知道的那些秘密!
- UIScrollView的重用机制的理解[转]
- 别告诉我你连线程池都不会用~ 一文搞懂线程池
- 程序员之家五一出行攻略(上)
- 苹果手机,电话号码(类似数字)显示为蓝色
- Fedora linux中下载更新火狐浏览器Firefox
- 小米一元流量magisk_薅不了羊毛了?小米一元流量业务即将停止运营
- 《赛博朋克2077》推出游戏概念艺术图海报
- html做3d的正方形,纯CSS绘制3D立方体
- ggplot2 多图排版
- 冒泡和快速排序的时间复杂度_凡人能看懂的冒泡排序和快速排序
热门文章
- 你真的理解BIO、NIO、AIO的区别吗?
- 为什么代码规范要求SQL语句不要过多的join?
- JSONOBject的fluentPut(key,value)方法:可链式设置元素
- Oracle EBS AP 发票放弃行
- python--DenyHttp项目(1)--socket编程:客户端与服务器端
- 指针 数组指针 指针数组 函数指针等说明。
- Web自动化测试中的接口测试
- 关闭线程的的三种方法
- WPF 中出现不同线程间操作的解决
- 一维数组所有元素是否大于_【C语言】- 指向一维数组元素的指针!你今天学习了吗?...