zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

2023-09-14 09:05:11 时间

1、模板方法模式定义

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

2、模板方法模式实例

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

头文件:

//模板方法模式实例

//常规准备考试
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;
}

3、运行结果: 

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓