PatternMethod - 模板方法模式

PatternMethod-模板方法模式

Why

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

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

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

9745e82af71fe96f48037af5e6e5d0d03351d356

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