模板模式

概念

模板方法模式( 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. /dev/urandom
  2. 容斥原理学习(Hdu 4135,Hdu 1796)
  3. Spring-AOP 自动创建代理之AnnotationAwareAspectJAutoProxyCreator
  4. 程序员的写作课:三、 海量信息输入指南
  5. 修改QQ截图自动命名规则
  6. ASP.NET中Server与Request对象的方法
  7. PHP算法使用__call优化代码
  8. python datetime计算时间差_用datetime计算时间差
  9. Hello Blazor:(15)使用bUnit进行单元测试
  10. 字符用_连接的是什么加密_防水连接器外壳与铜针表面涂层有什么用?
  11. scpi指令转换c语言,[C#源代码]使用SCPI指令对通讯端口(RS232/USB/GPIB/LAN)进行仪器编程...
  12. 不要残渣10w+,推荐8个我平时看的公众号
  13. 计蒜客 蓝桥杯模拟五 合并数字
  14. 南阳oj-----一种排序(set)
  15. java文件恢复软件,误删文件恢复-误删文件恢复大师 v1.1.0 最新版
  16. 别让Java对象逃逸(Object Escape)
  17. element-ui message 显示重叠问题
  18. DPDK17.05 第一次试用心得与问题记录
  19. Mac Redis开机自启动
  20. 2022年西式面点师(中级)考试题及模拟考试

热门文章

  1. 腾讯二十周年:弱冠之礼 穷则思变
  2. Docker Privileged access
  3. 免费linux远程服务器主机nitrousIO
  4. 用.bat文件打开程序
  5. 科大讯飞语音功能小结
  6. 解决 This request has been blocked; this endpoint must be available over WSS.
  7. 基于php022公司企业网站设计-计算机毕业设计
  8. RedHat搭建Web运用之PostgreSQL数据库安装(一)
  9. matlab图片渲染,MATLAB图渲染:OpenGL与Painters?
  10. 5. VBA消息框(MsgBox)