码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-19 00:33:09      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:protect   abs   div   模板方法   code   blog   str   cte   abstract   

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

 

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

标签:protect   abs   div   模板方法   code   blog   str   cte   abstract   

原文地址:https://www.cnblogs.com/liyue-sqsf/p/8878573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!