博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之七:模板方法模式(Template Method)
阅读量:6703 次
发布时间:2019-06-25

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

模板方法模式:

定义了一个算法的基本操作骨架,并将算法的一些步骤延迟到子类中来实现。
模板方法模式让子类在不更改算法结构的前提下能够又一次定义算法的一些步骤。

Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.

UML图:

这里写图片描写叙述

主要包含:

  1. AbstractClass:定义了一个子类须要又一次实现的算法的某些步骤primitiveOperation,实现了一个模板方法,这个模板方法调用定义于AbstractClass和又一次定义与子类中的某些函数。
  2. ConcreteClass:实现了primitiveOperation以完毕算法中某些特定的步骤。

C++代码例如以下:

#include 
class AbstractClass{ public: void templateMethod() { std::cout<<"before primitiveOperation1"<
templateMethod(); return 0;}

运行输出:

这里写图片描写叙述

事实上这个设计模式经经常使用到。基本上用到继承和多态这两个性质的话都会和这个设计模式打交道。

你可能感兴趣的文章
【原创】Git删除暂存区或版本库中的文件
查看>>
【原创】注意析构函数的使用
查看>>
求 s=a+aa+ aaa+ aaaa +aaaaa+........的值,a是从键盘输入的,项数也为键盘输入
查看>>
java代码做repeat次运算,从键盘输入几个数,比最值
查看>>
Coursera机器学习笔记(一) - 监督学习vs无监督学习
查看>>
新人报道,写的东西还请大神们多指导!也希望能让和我一样的同事少走弯路。...
查看>>
C#中获取当前时间:System.DateTime.Now.ToString()用法
查看>>
TW实习日记:第16天
查看>>
【计算机视觉】OpenCV篇(3) - 图像几何变换(仿射变换/透视变换)
查看>>
条件渲染vue
查看>>
数据库不完全恢复 以及恢复到测试环境:
查看>>
day 05 多行输出与多行注释、字符串的格式化输出、预设创建者和日期
查看>>
nodejs 实现文件拷贝
查看>>
laravel框架——composer导入laravel
查看>>
c# 扩展方法奇思妙用高级篇五:ToString(string format) 扩展
查看>>
MyEclipse/Eclipse 中使用javap
查看>>
docker registry v2与harbor的搭建
查看>>
求二叉树的高度
查看>>
TCP三次握手及四次挥手详细图解(转)
查看>>
数据结构02-链表
查看>>