具体可参考:https://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html
模板设计模式的关键:子类可以置换掉父类的可变部分,但是子类却不可以改变模板方法所代表的*逻辑
示例:
public abstract class AbstractTemplate { /** * 模板方法 */ public void templateMethod() { // 调用基本方法 abstractMethod(); hookMethod(); concreteMethod(); } /** * 抽象方法(由子类实现) */ protected abstract void abstractMethod(); /** * 基本方法(由子类重写) */ protected void hookMethod() { } /** * 具体方法(抽象类实现) */ private final void concreteMethod() { // 业务相关的代码 } }