模板模式

概念

模板方法模式( Template Method ),是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。

Template Method一般应用在具有以下条件的应用中:

  • 具有统一的操作步骤或操作过程
  • 具有不同的操作细节
  • 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同
    总结:在抽象类中统一操作步骤,并规定好接口;让子类实现接口。这样可以把各个具体的子类和操作步骤解耦合

结构图

具体实现

#include<iostream> using namespace std;class AbstractClass{public:virtual void start()=0;virtual void doing()=0;virtual void end()=0;void conduct(){start();doing();end();}
};class ConcreteClass_1 : public AbstractClass{void start(){cout<<"ConcreteClass_1 start"<<endl;}void doing(){cout<<"ConcreteClass_1 doing"<<endl;}void end(){cout<<"ConcreteClass_1 end"<<endl;}
};class ConcreteClass_2 : public AbstractClass{void start(){cout<<"ConcreteClass_2 start"<<endl;}void doing(){cout<<"ConcreteClass_2 doing"<<endl;}void end(){cout<<"ConcreteClass_2 end"<<endl;}
};int main(){AbstractClass * absc=new ConcreteClass_1();absc->conduct();delete absc;return 0;
}

模板模式(C/C++实现)相关推荐

  1. 模板模式(TemplateMethod)和策略(StrategyMethod)模式

    2019独角兽企业重金招聘Python工程师标准>>> 模板模式和 策略模式使用场景类似,都是把算法进行封装,可以用分离高层算法和低层的具体实现细节.都允许高层算法独立于他的具体实现 ...

  2. 模板模式(C++) 【转】

    模板模式(template) 在面向对象系统的设计和开发过程中,一定会有这样的情况:对于一些功能,在不同的对象身上展示不同的作用,但是功能的框架是一样的,这就是模板(template)模式的用武之地, ...

  3. 设计模式快速学习(六)模板模式

    举个例子:我们写HTML的时候,先写head然后写body,这样完成了一个空HTML页面的架子,我们的这一系列行为就是一个模板.模板模式中,首先会定义一个抽象类来声明这个事件模板,子类实现并被调用.也 ...

  4. 模板模式(template)解析例子

    摘要:本文深入浅出的讲述了设计模式中的模板模式,并给出了简单的示例,例子浅显易懂,并附带源代码. 模板模式属于行为型模式,其意图是定义一个操作的算法骨架,而将一些步骤延迟到子类中,可以不改变一个算法的 ...

  5. Android开发之模板模式初探

    模板模式我觉得在Android的开发中是最长用到的,基本是随处可见的,认识该模式,有助于我们对Android的源码及框架有一个更深层次的认识.那什么是模板模式呢,模板模式就是定义一个基本框架,将其中的 ...

  6. 深入理解模板模式及实际应用

    2019独角兽企业重金招聘Python工程师标准>>> 原来写了一个博客,记一次Spring环境使用模板模式.用了之后美滋滋.但是通过这几天的压力测试.发现,都怪自己太年少,太懵懂, ...

  7. 7.泡妞与设计模式(八)模板模式

    TEMPLATE METHOD 模板模式 模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方 ...

  8. 设计模式之——Template模板模式

    Template模式又叫模板模式,是在父类中定义处理流程的框架,在子类中实现具体处理逻辑的模式.当父类的模板方法被调用时程序行为也会不同,但是,不论子类的具体实现如何,处理的流程都会按照父类中所定义的 ...

  9. java 抽象类 模板_Java抽象类的构造模板模式用法示例

    搜索热词 本文实例讲述了Java抽象类的构造模板模式用法.分享给大家供大家参考,具体如下: 一 点睛 模板模式的一些简单规则. 抽象父类可以只定义需要使用的某些方法,而不能实现的部分抽象成抽象方法,留 ...

  10. java 之 模板模式(大话设计模式)

    模板模式,我们很多人都用过,而且大家都比较喜欢这个模式,先看一下类图 大话设计模式-类图 作为一个程序员,不懂得"偷懒",在笔者看来不是很合格哦!当我们编写程序时,发现很多个类所走 ...

最新文章

  1. 重磅! SLAM从入门到精通系统教程汇总
  2. 触发器是不是不能喝外键同时存在_数字电路--RS触发器
  3. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码
  4. 10月碎碎念-谈谈『自我放弃』
  5. Perl 语言学习笔记
  6. 产品需求文档五分钟轻松搞定!这可能史上最全PRD文档模板
  7. matlab变量全局化,matlab全局变量global
  8. 关系代数表达式优化步骤
  9. ubuntu14.04 clementine音乐播放器无法播放ape格式解决方法
  10. 如何选择剑桥英语KET,PET课程和老师
  11. c语言双向循环链表存储长整型,湖南工程学院15级C语言课程设计报告.doc
  12. 无线网卡芯片类型及与linux-wlan-ng的兼容性
  13. 华为手机如何与台式计算机连接不上,华为手机怎样与电脑连接?USB数据线及WLAN无线两种连接电脑方式介绍...
  14. winxpnbsp;sp3
  15. 同步与异步区别之我见(一)
  16. 什么是网关模块 工业物联网以太网网关WiFi模块的选型
  17. QT5.11-spdlog使用教程
  18. vue3.0 + typescript openlayers实现地图标点、移动、画线、显示范围、测量长度、测量面积、画三角形、画正方形、画圆、线选、画笔、清除测量、清除、地图上展示弹窗等功能
  19. 问卷调查工具实力榜单发布
  20. 求两个相交圆的交点的公式

热门文章

  1. 124344534453
  2. 用bs爬取安居客优秀经理人信息
  3. Signature|privileged permissions not in privapp-permissions whitelist异常处理
  4. 战棋游戏中的简单策略方法:基于群表示论的思想
  5. 抑郁检测用文本数据集
  6. 机器学习驱动的人工智能搜集证据,揭穿商务欺诈、舞弊
  7. 马哥SRE第五周课程作业
  8. 深度学习目标检测数据VisDrone2019(to yolo / voc / coco)---MMDetection数据篇
  9. 2017湖北荆州松滋家族谱集
  10. ssm基于Java web 的人人影视网站管理系统 毕业设计-附源码290915