PatternMethod - 模板方法模式

PatternMethod-模板方法模式

Why

通常你认为子类/调用者掌控执行:谁调用谁就能控制。

而模板方法模式反过来:父类掌控流程,子类只提供细节

所以叫“反向控制”——控制权从子类/调用者反转到了父类

image1

主要角色 image2
优缺点 image3
使用场景 算法步骤很固定, 但其中个别部分需要改变,
此时将易变的部分抽象出来,供子类去实现
需要通过子类来决定父类中某个步骤是否执行,实现子类对父类的反向控制
典型案例 在锁中内置一个aqs的子类作为静态内部类,并在锁的方法中调用该内部类的方法,
为锁提供大量模板方法