模板方法模型
模板方法模式实现要素**
准备一个抽象类,将部分逻辑以具体方法形式实现,然后声明一些抽象方法交由子类实现剩余逻辑,用钩子方法给予子类更大的灵活性。最后将方法汇总构成一个不可改变的模板方法。
抽象基类:汇总一个不可改变的模板方法final方法,子类不允许修改,abstract 类,实现相同方法,不同的进行抽象类方法,使用protected。如果有钩子方法也类似,可以实现默认方法。
具体子类:继承抽象基类,实现抽象基类中抽象方法。
优点:
1、复用性好
2、封装性好
3、屏蔽细节
4、便于维护
适用场景
1、算法或者操作遵循相似逻辑
2、重构(把相同的抽取到父类中实现)
3、重要、复杂的算法,核心算法设计为模板算法