1、模板方法模式的定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
2、接下来先看我们平时使用的一个例子,以支付为例,先创建一个抽象类定义通用支付流程方法,然后为每种支付方式提供自己的具体操作。
3、抽象类:
4、微信支付的实现测试:Weixi艘绒庳焰nPay weixin = new WeixinPay(); weixin.pay();返回:weixin acceptParameterweixin verifyweixin genPayurl
5、al坡纠课柩i支付实现测试:AliPay ali = new AliPay(); ali.pay();返回:ali acceptParameterali verifyali genPayurl
6、由以上2中实现方式发现,每一种方式中都存在相同的代码,public void pay() { this.accept霸烹钟爷Parameter(); this.verify(); this.genPayurl(); }这个时候我们就需要思考是否是架构上出现了问题。为什么不把相同的代码放到抽象类中呢。