常说的设计模式是23种设计模式,分为3大类:

  • 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
  • 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
  • 行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。

上次咱们说完“组合模式”后,结构型模式的7种也介绍完了,加上创建型模式,已经介绍过13种模式。今天咱们开始介绍行为型模式的11种,而第一个要介绍的就是“模板方法模式”。行为型模式重点在于对行为方法的使用。

“模板方法模式”主要是“模板”的设定。

通常我们取解决某件事情,或者完成一项工作,必须一步一步完成,而有的事情必须按照固定流程完成,而这以固定流程便是我们要完成的行为方法的模板,无论是多少的实现类,最终都要按照我们设定好的模板执行下去。

抽象类“AbstractClass”设定了模板步骤“TemplateMethod()”,并且规定了每一步骤方法的实现方式:“doOperation1()”和“doOperation2()”两个抽象方法,以及一个“odOperation3()”私有最终方法(private final)。

实现步骤方法1和步骤方法2,无论怎么实现,最终还要调用“模板方法”执行固定流程。

来来来,我们讲故事了。《西游记》的故事又来了。实际西游记中讲的就是西天取经的神话故事。其实现在看来,即使不是唐僧西天取经,换做别人的话,81难仍然要过。给人感觉就像已经挖好81个坑,有人来跳就可以了。而这挖好的81个坑,就可以用咱们的模板方法模式来体现。

金蝉遭贬第一难,

出胎几杀第二难,

满月抛江第三难,

寻亲报冤第四难,

出城逢虎第五难,

落坑折从第六难,

双叉岭上第七难,

两界山头第八难,

陡涧换马第九难,

夜被火烧第十难,

失却袈裟十一难,

收降八戒十二难,

黄风怪阻十三难,

请求灵吉十四难,

流沙难渡十五难,

收得沙僧十六难,

四圣显化十七难,

五庄观中十八难,

难活人参十九难,

贬退心猿二十难,

黑松林失散二十一难,

宝象国捎书二十二难,

金銮殿变虎二十三难,

平顶山逢魔二十四难,

莲花洞高悬二十五难,

乌鸡国救主二十六难,

被魔化身二十七难,

号山逢怪二十八难,

风摄圣僧二十九难,

心猿遭害三十难,

请圣降妖三十一难,

黑河沉没三十二难,

搬运车迟三十三难,

大赌输赢三十四难,

祛道兴僧三十五难,

路逢大水三十六难,

身落天河三十七难,

鱼篮现身三十八难,

金兜山遇怪三十九难,

普天神难伏四十难,

问佛根源四十一难,

吃水遭毒四十二难,

西梁国留婚四十三难,

琵琶洞受苦四十四难,

再贬心猿四十五难,

难辨猕猴四十六难,

路阻火焰山四十七难,

求取芭蕉扇四十八难,

收缚魔王四十九难,

赛城扫塔五十难,

取宝救僧五十一难,

棘林吟咏五十二难,

小雷音遇难五十三难,

诸天神遭困五十四难,

稀柿衕秽阻五十五难,

朱紫国行医五十六难,

拯救疲癃五十七难,

降妖取后五十八难,

七情迷没五十九难,

多目遭伤六十难,

路阻狮驼六十一难,

怪分三色六十二难,

城里遇灾六十三难,

请佛收魔六十四难,

比丘救子六十五难,

辨认真邪六十六难,

松林救怪六十七难,

僧房卧病六十八难,

无底洞遭困六十九难,

灭法国难行七十难,

隐雾山遇魔七十一难,

凤仙郡求雨七十二难,

失落兵器七十三难,

会庆钉钯七十四难,

竹节山遭难七十五难,

玄英洞受苦七十六难,

赶捉犀牛七十七难,

天竺招婚七十八难,

铜台府监禁七十九难,

凌云渡脱胎八十难,

通天河遇鼋湿经书八十一难

由于坑太多,我们把这八十一难放在一个Content的文件中,利用io流读取出来。

这样我们先建立一个“取经人”的接口以为模板。

规定了取经人必须走的流程。

实现一个唐僧,让他取过81个坑

最终,调用模板方法,完成流程。

23种设计模式(十四)模板方法模式(阁瑞钛伦特软件-九耶实训)相关推荐

  1. 23种设计模式(二十二)状态模式(阁瑞钛伦特软件-九耶实训)

    常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...

  2. 23种设计模式(十一)外观模式(阁瑞钛伦特软件-九耶实训)

    常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...

  3. 23种设计模式(二十三)访问者模式(阁瑞钛伦特软件-九耶实训)

    常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...

  4. 在Windows操作系统中安装MySQL8教程(一)(二)(阁瑞钛伦特软件—九耶实训)

    1.1 下载MySQL8数据库 (已上传) 打开网址: https://www.mysql.com 显示界面如图1-xx所示. 点击DOWNLOADS菜单,显示界面如图1-xx所示. 点击" ...

  5. Oracle使用OMS备份数据(阁瑞钛伦特软件-九耶实训)

    在oracle 中可以方便的把数据导出为文件,或者从文件导入.通过oracle的管理服务器(oracle management server,oms)可以方便的实现,整个操作过程中有很多地方需要解释说 ...

  6. 添加用户并配置读写权限(阁瑞钛伦特软件-九耶实训)

    1.3.1添加用户并授予读写权限 Step01:进入CMD控制台输入命令如图1.43所示. 图1.43 增加1个ghy账户并设置密码 参数-c就是创建password.ini文件,再创建1个用户时就不 ...

  7. 23种设计模式之:模板方法模式

    转载地址:https://blog.csdn.net/zhengzhb/article/details/7405608 整理的设计模式实例:https://github.com/jinchuanchu ...

  8. IT行业人均年薪11万,阁瑞钛伦特软件分析程序员工资为什么这么高?

    在当代众多行业中,如果要问什么岗位发展最好.薪资最高? 相信80%的人会说程序员. 和工程师的耀眼形象不同,多数人眼里的程序员更接近于一群情趣干瘪的宅男,而非高智商高收入的精英群体. 客观而言,这些评 ...

  9. 备战面试日记(3.3) - (设计模式.23种设计模式之结构型模式)

    本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.9 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...

最新文章

  1. QIIME 2教程. 30补充资源SupplementaryResources(2020.11)
  2. 数据库中省区市组装成json_全国各省、市、县、镇、村的mysql数据库和JSON格式数据...
  3. 移植uboot第二步:分析uboot
  4. 自己做站点(二) 20块钱搞定一个企业站:域名amp;空间申请
  5. 解析Linux 多应用程序docker自动部署脚本
  6. 如何创建一个新浪微博应用以及获得Access token
  7. 【译】What is a UTXO, and how does it work for a blockchain ledger?
  8. Java数据类型和MySql数据类型对应表
  9. python3爬虫入门实例_10个python爬虫入门实例(小结)
  10. 两个listmap合并去重_单机亿级规模题库去重,如果是你会怎么做?
  11. php程序员需要精通js的程度_PHP程序员基本要求和必备技能
  12. 求方阵的鞍点(即在行最小列最大的那个点)
  13. 全网首发:FFMpeg使用NVIDIA DECODER,解码后的数据是NV12,不是YUV420P
  14. Linux查看磁盘是否被占满,怎么查看Linux磁盘空间是否满了?
  15. 【Widevine L1】MTK平台基于Trustonic TEE方案widevine keybox异常log
  16. mysql 如何还原数据库
  17. win10计算机如何切换用户名,如何修改电脑用户名,win10系统更改用户名方法
  18. 华天OA漏洞复现手册
  19. unreal-教程-第十八章:UI跟随的基本原理(c++)
  20. coredump 瘦身风云

热门文章

  1. 互联网档案馆为何决定提前两周关闭其国家应急图书馆?
  2. YOLOV8改进:在c2f模块中的不同位置加入NAMAAttention注意力机制
  3. nfa状态转换图正规式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
  4. 英语总结-14年4月
  5. 火狐量子浏览器怎么样,firefox quantum下载
  6. C语言之大王叫我来巡山呐
  7. 如何从绩效报告中分辨出——好模型 or 坏模型
  8. eclipse ide安装_如何下载和安装Eclipse IDE?
  9. python整数类型bcdoxx_Python学习的Format()函数,python,之,format
  10. 放弃python选r_无需纠结R还是Python