模板方法模式 -- Template Method
2017-04-17 22:42:25 最后更新: 2017-04-17 22:42:25 访问数量:1591
2017-04-17 22:42:25 最后更新: 2017-04-17 22:42:25 访问数量:1591
有时我们知道一个算法的所有步骤,但是具体实现却可以有很多种版本,例如一份外卖,用户执行下单、支付、配送、确认收货这几个步骤,但是以配送为例,不同的货品、不同的收货地址需要以不同的配送方式进行配送,我们可以定义一个抽象接口,用来定义一个订单从下单到确认收货的每一个主要步骤,然后在不同场景下通过不同的具体实现来完成整个过程
我们称这个抽象的定义每一个步骤的接口或抽象类为模板方法,一个模板方法用一些抽象的操作定义一个算法,而他的子类重定义这些操作实现具体的行为
如上图所示,模板方法模式由以下组件构成:
模板方法模式最常用的地方是类库,它们提供了类库中的公共行为
模板方法模式是一种反向控制结构,父类声明需要调用的操作,子类去实现这些操作,但最终由父类决定调用他们的时机,这些操作也被称为钩子操作或回调
几乎在任何一个抽象类中,都能找到模板方法模式的使用
策略模式是使用委托机制实现整个算法的抽象、实现、改变和扩展的
而模板方法模式则是通过继承实现算法中某个或某几个步骤的改变和扩展
欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,只有全部原创,只有干货没有鸡汤