常说的设计模式是23种设计模式,分为3大类:
- 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
- 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
- 行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。
上次咱们说完“组合模式”后,结构型模式的7种也介绍完了,加上创建型模式,已经介绍过13种模式。今天咱们开始介绍行为型模式的11种,而第一个要介绍的就是“模板方法模式”。行为型模式重点在于对行为方法的使用。
“模板方法模式”主要是“模板”的设定。
通常我们取解决某件事情,或者完成一项工作,必须一步一步完成,而有的事情必须按照固定流程完成,而这以固定流程便是我们要完成的行为方法的模板,无论是多少的实现类,最终都要按照我们设定好的模板执行下去。
抽象类“AbstractClass”设定了模板步骤“TemplateMethod()”,并且规定了每一步骤方法的实现方式:“doOperation1()”和“doOperation2()”两个抽象方法,以及一个“odOperation3()”私有最终方法(private final)。
实现步骤方法1和步骤方法2,无论怎么实现,最终还要调用“模板方法”执行固定流程。
来来来,我们讲故事了。《西游记》的故事又来了。实际西游记中讲的就是西天取经的神话故事。其实现在看来,即使不是唐僧西天取经,换做别人的话,81难仍然要过。给人感觉就像已经挖好81个坑,有人来跳就可以了。而这挖好的81个坑,就可以用咱们的模板方法模式来体现。
金蝉遭贬第一难, 出胎几杀第二难, 满月抛江第三难, 寻亲 冤第四难, 出城逢虎第五难, 落坑折从第六难, 双叉岭上第七难, 两界山头第八难, 陡涧换马第九难, 夜被火烧第十难, 失却袈裟十一难, 收降八戒十二难, 黄风怪阻十三难, 请求灵吉十四难, 流沙难渡十五难, 收得沙僧十六难, 四圣显化十七难, 五庄观中十八难, 难活人参十九难, 贬退心猿二十难, 黑松林失散二十一难, 宝象国捎书二十二难, 金銮殿变虎二十三难, 平顶山逢魔二十四难, 莲花洞高悬二十五难, 乌鸡国救主二十六难, 被魔化身二十七难, |
山逢怪二十八难, 风摄圣僧二十九难, 心猿遭害三十难, 请圣降妖三十一难, 黑河沉没三十二难, 搬运车迟三十三难, 大赌输赢三十四难, 祛道兴僧三十五难, 路逢大水三十六难, 身落天河三十七难, 鱼篮现身三十八难, 金兜山遇怪三十九难, 普天神难伏四十难, 问佛根源四十一难, 吃水遭毒四十二难, 西梁国留婚四十三难, 琵琶洞受苦四十四难, 再贬心猿四十五难, 难辨猕猴四十六难, 路阻火焰山四十七难, 求取芭蕉扇四十八难, 收缚魔王四十九难, 赛城扫塔五十难, 取宝救僧五十一难, 棘林吟咏五十二难, 小雷音遇难五十三难, 诸天神遭困五十四难, |
稀柿衕秽阻五十五难, 朱紫国行医五十六难, 拯救疲癃五十七难, 降妖取后五十八难, 七情迷没五十九难, 多目遭伤六十难, 路阻狮驼六十一难, 怪分三色六十二难, 城里遇灾六十三难, 请佛收魔六十四难, 比丘救子六十五难, 辨认真邪六十六难, 松林救怪六十七难, 僧房卧病六十八难, 无底洞遭困六十九难, 灭法国难行七十难, 隐雾山遇魔七十一难, 凤仙郡求雨七十二难, 失落兵器七十三难, 会庆钉钯七十四难, 竹节山遭难七十五难, 玄英洞受苦七十六难, 赶捉犀牛七十七难, 天竺招婚七十八难, 铜台府监禁七十九难, 凌云渡脱胎八十难, 通天河遇鼋湿经书八十一难 |
由于坑太多,我们把这八十一难放在一个Content的文件中,利用io流读取出来。
这样我们先建立一个“取经人”的接口以为模板。
规定了取经人必须走的流程。
实现一个唐僧,让他取过81个坑
最终,调用模板方法,完成流程。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91428 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!