抽象类延伸出的模板设计模式

Posted liyue-sqsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了 抽象类延伸出的模板设计模式相关的知识,希望对你有一定的参考价值。

具体可参考: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() {
        // 业务相关的代码
    }
    
}

 

以上是关于 抽象类延伸出的模板设计模式的主要内容,如果未能解决你的问题,请参考以下文章

抽象类和模板模式

我所理解的模板方法模式

设计模式 - 模板方法模式

模板模式

设计模式--- 模板方法模式

模板方法(TemplateMethod)