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