23种设计模式-------模板模式

package demo;
/**
 * 二.模板模式
 *    兩種角色:
 *    1.抽象模板
 *        1.抽象方法 :需要子類去實現,子類必須實現
 *        2.回調方法:擴展方法,是一個空方法,子類可以重寫,也可以不重寫
 *        3.私有的最終方法 :不可重寫
 *        4.模板方法:這個方法中定義了每一個方法的執行順序和邏輯
 *    2.具體
 *        需要實現抽象模板中的抽象方法
 * 
 *
 */


 abstract class ConcreteTemplate {
    /**
     * 模板方法
     */
    public void templateMethod(){
        //调用基本方法
        abstractMethod();
        hookMethod();
        concreteMethod();
    }
    /**
     * 基本方法的声明(由子类实现)
     */
    protected abstract void abstractMethod();
    /**
     * 基本方法(空方法)
     */
    protected void hookMethod(){}
    /**
     * 基本方法(已经实现)
     */
    private final void concreteMethod(){
        //业务相关的代码
    }
}


public  class ConcreteTemplate extends ConcreteTemplate{
    //基本方法的实现
    @Override
    public void abstractMethod() {
        //业务相关的代码
    }
    //重写父类的方法
    @Override
    public void hookMethod() {
        //业务相关的代码
    }
}

猜你喜欢

转载自blog.csdn.net/lk_0518/article/details/78743291