博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模板模式(Template Pattern)
阅读量:4701 次
发布时间:2019-06-09

本文共 1159 字,大约阅读时间需要 3 分钟。

模板模式(Template Pattern) —— 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的。Template 提供了这种情况的一个实现框架。

Template模式是采用继承的方式实现:将逻辑(算法)框架放在抽象基类中,并定义好细节的接口,子类中实现细节。

#include
using namespace std;//抽象类 实现总的通用算法框架,算法细节交给子类实现class Abstact {public: virtual ~Abstact(){} // 将不变的部分(通用的算法框架)在抽象类中实现,而将变化的部分(算法细节)抽象出来交给子类实现。 void TemplateMethod(){ cout<<"TemplateMethod:"<
PrimitiveOperation1(); this->PrimitiveOperation2(); }protected: virtual void PrimitiveOperation1()=0; virtual void PrimitiveOperation2()=0; Abstact(){}};//子类A,实现自己的算法细节class ConcreteA: public Abstact{public: ConcreteA(){} ~ConcreteA(){}protected: void PrimitiveOperation1(){ cout<<"A ---> PrimitiveOperation1:"<
PrimitiveOperation2:"<
PrimitiveOperation1:"<
PrimitiveOperation2:"<
TemplateMethod(); Abstact* b = new ConcreteB(); b->TemplateMethod(); delete a; delete b; return 0;}

转载于:https://www.cnblogs.com/s-lisheng/p/11332151.html

你可能感兴趣的文章
[NYIST15]括号匹配(二)(区间dp)
查看>>
json_value.cpp : fatal error C1083: 无法打开编译器生成的文件:No such file or directory
查看>>
洛谷 P1101 单词方阵
查看>>
Swift DispatchQueue
查看>>
C#和JAVA 访问修饰符
查看>>
小甲鱼OD学习第1讲
查看>>
HDU-1085 Holding Bin-Laden Captive-母函数
查看>>
php提示undefined index的几种解决方法
查看>>
LRJ
查看>>
Struts2环境搭建
查看>>
Linux: Check version info
查看>>
stl学习之测试stlen,cout等的运行速度
查看>>
魔戒三曲,黑暗散去;人皇加冕,光明归来
查看>>
Error和Exception
查看>>
Python和Singleton (单件)模式[转载]
查看>>
httpclient设置proxy与proxyselector
查看>>
IT常用单词
查看>>
拓扑排序
查看>>
NYOJ--32--SEARCH--组合数
查看>>
JMS
查看>>