Template模式C++实现

#include <iostream>
using namespace std;
class AbstractClass {
public:
void TemplateMethod() {
cout << "PrimitiveOperation1() Start" << endl;
PrimitiveOperation1();
cout << "PrimitiveOperation1() End" << endl;
cout << "PrimitiveOperation2() Start" << endl;
PrimitiveOperation2();
cout << "PrimitiveOperation2() End" << endl;
}
protected:
virtual void PrimitiveOperation1() {
cout << "AbstractClass Operation1" << endl;
}
virtual void PrimitiveOperation2() {
cout << "AbstractClass Operation2" << endl;
}
};
class ConcreteClass : public AbstractClass {
protected:
virtual void PrimitiveOperation1() {
cout << "ConcreteClass Operation1" << endl;
}
virtual void PrimitiveOperation2() {
cout << "ConcreteClass Operation2" << endl;
}
};
int main() {
AbstractClass * pAbstractClass = new ConcreteClass();
pAbstractClass->TemplateMethod();
if (pAbstractClass) delete pAbstractClass;
return 0;
}
Template模式C++实现的更多相关文章
- Java事务处理全解析(五)—— Template模式
在本系列的上一篇文章中,我们讲到了使用TransactionManger和ConnectionHolder完成线程安全的事务管理,在本篇中,我们将在此基础上引入Template模式进行事务管理. Te ...
- Spring中Template模式与callback的结合使用浅析
Spring不论是与ibatis,还是与Hibernate的结合中,都使用到了Template模式与callback技术,来达到简化代码实现的目的.Template模式也即模板模式,用于对一些不太变化 ...
- [设计模式2]--模板(Template)模式
原文出处:http://blog.csdn.net/lwbeyond/article/details/7517679 一. 问题 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务 ...
- Template模式
在开发时,有时会遇到对于一个算法的实现,在不同的对象中有不同的实现,可是这个算法的框架是同样的.这时能够使用Template模式或Strategy模式. Template是採用继承的方式来实现这一点, ...
- Template 模式
Template 模式是很简单模式,但是也应用很广的模式.Template 是采用继承的方式实现算法的异构,其关键点就是将通用算法封装在抽象基类中,并将不同的算法细节放到子类中实现.Template ...
- Java设计模式(13)模板模式(Template模式)
Template模式定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 其实Java的抽象类本来就是Template模式,因此使用很普遍.而且很容易理解和使用,我们直接以示例开始: pu ...
- C++设计模式实现--模板(Template)模式
一. 问题 在面向对象系统的分析与设计过程中常常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,可是逻辑(算法)的框架(或通用的应用算法)是同样的.Template提 ...
- 设计模式C++描述----02.模板(Template)模式
一. 问题 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的.Template提 ...
- PHP--Smarty的template模式
function change_year() { var ss = $('#select_year').children('option:selected').val(); $.ajax({ type ...
- 设计模式C++模板(Template)模式
设计模式C++描述----02.模板(Template)模式(转载) 一. 问题 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现, ...
随机推荐
- 0day学习笔记(2)--函数调用
函数调用过程 调用函数操作 函数参数入栈(在当前函数栈帧),从左至右或从右至左视情况而定 一般为从右至左 mov 地址,参数 的一个操作并不直接pop而是定位到地址将参数传递进去 call offse ...
- css背景渐变色
张鑫旭关于渐变色博客 菜鸟教程关于渐变色 .img-box{ background: #ec9259; /* 一些不支持背景渐变的浏览器 */ background: -webkit-linear-g ...
- java中Locks的使用
文章目录 Lock和Synchronized Block的区别 Lock interface ReentrantLock ReentrantReadWriteLock StampedLock Cond ...
- 基于java的OpenCV安装和配置
目录 OpenCV简介 OpenCV下载安装 eclipse里引用jar包和配置 OpenCV简介 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Window ...
- Netty(七):EventLoop学习前导——Reactor模式
了解Netty的人多少都会知道Netty的高性能的一个原因就是它是基于事件驱动的,而这一事件的原型就是Reactor模式. 所以在学习EventLoop前,很有必要先搞懂Reactor模式. 本文目录 ...
- 10倍处理能力 阿里云推云上首个支持12层4K非编NAS产品
5月23日,阿里云在2017云栖大会·成都峰会上正式推出了云上首个支持广电级非编的文件存储产品------NAS Plus,作为阿里云文件存储NAS的升级款,NAS Plus提供高达200Gbps的吞 ...
- 批量将制定文件夹下的全部Excel文件导入微软SQL数据库
以下代码将c:\cs\文件夹下的全部Excle中数据导入到SQL数据库 declare @query vARCHAR(1000) declare @max1 int declare @count1 i ...
- EntityFramework 迁移遇到的问题
2019独角兽企业重金招聘Python工程师标准>>> 添加迁移add-migration migrationname 更新数据Update-Database EntityFrame ...
- 图论--差分约束--POJ 1364 King
Description Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen p ...
- 解决ASP.NET WebPage的CS1061报错
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="pg_CompanyInfo ...