模板方法模式
模板方法适用场景3
模板方法适用场景2
模板方法适用场景1
模板方法的实现要素
模板方法模式的缺点
模板方法模式:Template Method
1、定义
定义了一个操作算法框架,而将一些步骤延迟到子类中实现,使得子类在不改变一个算法结构的同时就重新定义该算法的某些特定步骤。
2、实现
模板方法一定要申明成final,不能够被复写
钩子函数(HOOK):通过抽象类或是本类中提供一个默认或者为空的实现,具体的子类可以自行决定是否挂钩以及如何挂钩。在某任务之前、之后、执行中、报异常后调用的方法(是不是有种熟悉的感觉)
3、特点
优点:①封装性好 ②复用性好 ③屏蔽细节 ④便于维护
缺点:继承只能是单个的,重构时会遇到困难
4、应用
①算法或操作遵循相似的逻辑
②重构时(把相同的代码抽取到父类中)
③重要、复杂的算法,核心算法设计设计为模板方法