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

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

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

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

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

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

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

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

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

 

金蝉遭贬第一难,

出胎几杀第二难,

满月抛江第三难,

寻亲报冤第四难,

出城逢虎第五难,

落坑折从第六难,

双叉岭上第七难,

两界山头第八难,

陡涧换马第九难,

夜被火烧第十难,

失却袈裟十一难,

收降八戒十二难,

黄风怪阻十三难,

请求灵吉十四难,

流沙难渡十五难,

收得沙僧十六难,

四圣显化十七难,

五庄观中十八难,

难活人参十九难,

贬退心猿二十难,

黑松林失散二十一难,

宝象国捎书二十二难,

金銮殿变虎二十三难,

平顶山逢魔二十四难,

莲花洞高悬二十五难,

乌鸡国救主二十六难,

被魔化身二十七难,

号山逢怪二十八难,

风摄圣僧二十九难,

心猿遭害三十难,

请圣降妖三十一难,

黑河沉没三十二难,

搬运车迟三十三难,

大赌输赢三十四难,

祛道兴僧三十五难,

路逢大水三十六难,

身落天河三十七难,

鱼篮现身三十八难,

金兜山遇怪三十九难,

普天神难伏四十难,

问佛根源四十一难,

吃水遭毒四十二难,

西梁国留婚四十三难,

琵琶洞受苦四十四难,

再贬心猿四十五难,

难辨猕猴四十六难,

路阻火焰山四十七难,

求取芭蕉扇四十八难,

收缚魔王四十九难,

赛城扫塔五十难,

取宝救僧五十一难,

棘林吟咏五十二难,

小雷音遇难五十三难,

诸天神遭困五十四难,

稀柿衕秽阻五十五难,

朱紫国行医五十六难,

拯救疲癃五十七难,

降妖取后五十八难,

七情迷没五十九难,

多目遭伤六十难,

路阻狮驼六十一难,

怪分三色六十二难,

城里遇灾六十三难,

请佛收魔六十四难,

比丘救子六十五难,

辨认真邪六十六难,

松林救怪六十七难,

僧房卧病六十八难,

无底洞遭困六十九难,

灭法国难行七十难,

隐雾山遇魔七十一难,

凤仙郡求雨七十二难,

失落兵器七十三难,

会庆钉钯七十四难,

竹节山遭难七十五难,

玄英洞受苦七十六难,

赶捉犀牛七十七难,

天竺招婚七十八难,

铜台府监禁七十九难,

凌云渡脱胎八十难,

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

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

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

 

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

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

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

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值