模板模式

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
C++代码:
#include<iostream>
using namespace std;class Game {
public:virtual void initialize() = 0;virtual void startPlay() = 0;virtual void endPlay() = 0;public:void play(){//初始化游戏
      initialize();//开始游戏
      startPlay();//结束游戏
      endPlay();}
};class Cricket :public Game {
public:void endPlay() {cout<<"Cricket Game Finished!"<<endl;}void initialize() {cout<<"Cricket Game Initialized! Start playing."<<endl;}void startPlay() {cout<<"Cricket Game Started. Enjoy the game!"<<endl;}
};class Football:public Game {
public:void endPlay() {cout<<"Football Game Finished!"<<endl;}void initialize() {cout<<"Football Game Initialized! Start playing."<<endl;}void startPlay() {cout<<"Football Game Started. Enjoy the game!"<<endl;}
};int main(){Game* game = new Cricket();game->play();cout<<endl;game = new Football();game->play();
}

类图:

抽象类把主调流程完成了,子类通过具体化相关具体过程实现不同的效果,Template Method相对比较好理解。

转载于:https://www.cnblogs.com/J1ac/p/9694165.html

设计模式之-模版模式(Template Pattern)相关推荐

  1. java 访客模式,设计模式 - 访客模式( Visitor Pattern)

    设计模式 - 访客模式( Visitor Pattern) 在Visitor模式中,我们使用一个访问者类来更改元素类的执行算法. 通过这种方式,元素的执行算法可以随着访问者的变化而变化. 此模式属于行 ...

  2. 7.1 模板方法模式 (Template Pattern)

    零. 行为型模式概述 1.定义 行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个独个对象都无法单独完成的任务,它涉及算法与对象间职责的分配.行为型模式分为类 ...

  3. 乐在其中设计模式(C#) - 提供者模式(Provider Pattern)

    原文:乐在其中设计模式(C#) - 提供者模式(Provider Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 提供者模式(Provider Pattern) 作者:web ...

  4. 乐在其中设计模式(C#) - 原型模式(Prototype Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 原型模式(Prototype Pattern) 作者:webabcd 介绍 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象. ...

  5. 乐在其中设计模式(C#) - 命令模式(Command Pattern)

    原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...

  6. 如何让孩子爱上设计模式 ——11.外观模式(Facade Pattern)

    如何让孩子爱上设计模式 --11.外观模式(Facade Pattern) 标签: 设计模式初涉 场景引入 相信各位玩过LOL英雄联盟游戏的童鞋,对下面两个英雄都不会陌生吧:       分别是瑞雯和 ...

  7. 如何让孩子爱上设计模式 ——10.桥接模式(Bridge Pattern)

    如何让孩子爱上设计模式 --10.桥接模式(Bridge Pattern) 标签: 设计模式初涉 我有故事,你有酒吗?这年头写个技术文不讲个故事都不行,行,我讲: 还有发现很多的技术博文都开始有喜欢往 ...

  8. 设计模式-中介者模式(Mediator Pattern)

    设计模式-中介者模式(Mediator Pattern) 文章目录 设计模式-中介者模式(Mediator Pattern) 一.定义 二.概念解释 三.场景 四.实现 1.类图 2.代码实现 五.总 ...

  9. Python设计模式之模版模式(16)

    模版模式(The Template Pattern):抽象出算法公共部分从而实现代码复用. 模板模式中,我们可以把代码中重复的部分抽出来作为一个新的函数,把可变的部分作为函数参数,从而消除代码冗余.一 ...

  10. 【愚公系列】2021年12月 二十三种设计模式(七)-桥接模式(Bridge Pattern)

    文章目录 前言 一.桥接模式(Bridge Pattern) 二.使用步骤 角色 示例 总结 优点 缺点 使用场景 前言 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分 ...

最新文章

  1. mysql多源复制脚本_Mysql多源复制
  2. 二十四、TextCNN的原理和实现
  3. 20180429 xlVBA套打单据自适应列宽
  4. she's gone
  5. python抓取网页图片
  6. android电视原理图,电视机工作原理
  7. “System.AccessViolationException”类型的未经处理的异常在 System.Data.dll 中发生
  8. 重启手机出现机器人加一个叹号_印度科幻脑洞高能!《宝莱坞机器人2.0》内地定档...
  9. windows下批量换程序——运维常用
  10. android 按钮换行_自定义Android自动换行的布局
  11. Qt 学习之路 :信号槽
  12. SSR for mac with free download addresses
  13. 本地文件共享到云服务器,本地文件共享到云服务器
  14. 直播小程序推出,解锁2018微信直播新玩法
  15. 计算机中什么不可打印,电脑不能打印怎么办
  16. linux看网卡百兆千兆,查看网卡是百兆还是千兆
  17. 题目 1609: 黑色星期五
  18. 北京大学肖臻老师《区块链技术与应用》ETH笔记 - 8.0 ETH挖矿难度的调整
  19. java项目实体类方法找不到_报错,居然找不到实体类
  20. 将tif文件转换成mrc文件

热门文章

  1. Contest-hunter 暑假送温暖 SRM08
  2. python数字图像处理(3):图像像素的访问与裁剪
  3. C#中的where泛型约束【转】
  4. office communications server 2007 标准版部署详细步骤及错误分析
  5. Hadoop启动jobhistoryserver
  6. 别用Date了,Java8新特性之日期处理,现在学会也不迟!
  7. CTO发飙:不要在Java代码中写set/get方法了,逮一次罚款***
  8. 凌晨!腾讯紧急宣布再度延期复工时间到24号;上班感染肺炎算工伤;小米VIVO完成统一推送适配...
  9. 给IT人的15点建议:苦逼程序员的辛酸反省与总结
  10. 使用 Spring Boot 开发 Web 项目