#pragma once// 抽象基类,定义 法的轮廓
class AbstractClass
{
public: AbstractClass(){} virtual ~AbstractClass(){} // 这个函数中定义了 法的轮廓 void TemplateMethod(); protected: // 纯虚函数,由派生类实现之 virtual void PrimitiveOperation1() = 0; virtual void PrimitiveOperation2() = 0;
}; // 继承自AbstractClass,实现 法
class ConcreateClass : public AbstractClass
{
public: ConcreateClass(){} virtual ~ConcreateClass(){} protected: virtual void PrimitiveOperation1(); virtual void PrimitiveOperation2();
};
#include "StdAfx.h"
#include "template_method_impl.h"
#include <iostream>void AbstractClass::TemplateMethod()
{ PrimitiveOperation1(); PrimitiveOperation2();
} void ConcreateClass::PrimitiveOperation1()
{ std::cout << "PrimitiveOperation1 by ConcreateClass\n";
} void ConcreateClass::PrimitiveOperation2()
{ std::cout << "PrimitiveOperation2 by ConcreateClass\n";
} 
// TemplateMethod.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include "template_method_impl.h"
#include <stdlib.h>//定义一个操作中的法的骨架,而将一些步骤延迟到子类中。
//TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 int _tmain(int argc, _TCHAR* argv[])
{//抽象类定义模板,由子类特化模板AbstractClass* pConcreateClass = new ConcreateClass; pConcreateClass->TemplateMethod(); delete pConcreateClass; system("pause");return 0;
}

设计模式-行为-模板方法相关推荐

  1. 一篇博客读懂设计模式之---模板方法模式

    设计模式之模板方法模式: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 简而言之就是:父类定义了骨架(调用哪些方法及其 ...

  2. 23种设计模式之模板方法

    23种设计模式总篇:chenmingyu.top/design/ 模板方法 模板方法属于行为型模式 定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中.使得子类可以不改变一个算法的结构即可重定 ...

  3. 设计模式之模板方法模式详解

    设计模式之模板方法模式详解 概述 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的 ...

  4. Java设计模式之模板方法模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

  5. php templete什么意思,PHP设计模式之模板方法模式定义与用法详解

    本文实例讲述了PHP设计模式之模板方法模式定义与用法.分享给大家供大家参考,具体如下: 什么是模板方法模式 模板方法(Template Method)设计模式中使用了一个类方法templateMeth ...

  6. 【设计模式】模板方法模式(C#)

    [设计模式]模板方法模式 1.概述 背景 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某 ...

  7. 设计模式之模板方法模式(TemplateMethod)

    设计模式之模板方法模式 模板方法模式 代码实现 模式的应用 模板方法模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板.它的子类可以按需要重写方法实现 ...

  8. 【Java】设计模式之模板方法模式

    - 好记性不如烂笔头,特将设计模式之模板方法模式记录在我的小仓库. 文章目录 什么是模板方法模式 案例 什么是模板方法模式 简而言之就是一套算法可以适用于多个类,则进行的步骤汇总,让子类别在不改变算法 ...

  9. Carson带你学设计模式:模板方法模式(Template Method)

    前言 今天Carson来全面总结最常用的设计模式 - 模板方法模式. Carson带你学设计模式系列文章 Carson带你学设计模式:这是一份全面 & 详细的设计模式学习指南 Carson带你 ...

  10. C++设计模式之模板方法模式

    模板方法模式 设计模式的定义 模板方法模式详解 背景----柠檬茶和咖啡的的冲泡方式 代码实现咖啡和茶冲泡的类 整理相似点 进一步设计 总结一下 认识模板方法 测试一下 模板方法模式的优点 模板方法的 ...

最新文章

  1. CSS 强制换行和禁止换行强制换行 和禁止换行样式
  2. Win下执行Swing程序的BAT文件 和 Linux下执行Swing程序的SH文件
  3. JS中数组的常用方法
  4. Event flow
  5. Java代码中,如何监控Mysql的binlog?
  6. python操作excel模板_Python Excel模板读写,维护公式和格式
  7. P6+架构技术揭秘:Redis+Nginx+Dubbo精选+面试题+架构师精选视频(送)
  8. Ajax批量上传文件Demo
  9. 昆仑通态通用版找不到驱动_昆仑通态USB下载问题解决方案
  10. U盘写保护,不能被格式化
  11. Semi-continuity
  12. 易宝支付为二清机构放开通道,导致POS代理机构卷款跑路
  13. html如何将图片弄成背景,如何用css把图片弄成背景
  14. MobiCom2015阅读表(Poster)
  15. 【每日蓝桥】8、一三年省赛Java组真题“打印十字图”
  16. easyui-textbox
  17. 使用new bing来阅读文献
  18. 软件测试的完整案例分析,软件测试案例分析完整版
  19. 利用pgzero做一个接球的小游戏
  20. python3 爬虫日记(三) 爬取堆糖动态加载网页

热门文章

  1. 中的 隐藏鼠标菜单_如何在鼠标右键菜单中添加自定义菜单?工效率提升一倍...
  2. 常问面试题总结(JAVA基础篇)
  3. Spring框架在属性注入时@Autowired和@Resource的区别
  4. 【Socket网络编程】16.UDP 循环读取recvfrom() 与 循环发送 sendto()
  5. C# 索引器使用总结
  6. 分布式开放消息系统(RocketMQ)的原理与实践
  7. 每一个有理想的程序员都应该读的一本书-《rework》
  8. OpenCV Harris 角点检测子
  9. PageRank算法并行实现
  10. 中国计算机学会CCF推荐国际学术会议和期刊目录-人机交互与普适计算