Java設計模式之14 —— 模板模式

模板模式的基本定義是:定義一個操作中的算法框架,而將一些步驟延遲到子類中,使得子類可用改變一個算法的結構,即可重定義該算法發 某些特定步驟。

示例代碼如下:

1, 在抽象的父類中定義一系列的特定步驟:其中startUp方法定義爲final,使子類不能重寫

package modelpattern;

public abstract class AbstractComputer {
    protected void powerOn() {
        System.out.println("開啓電源");
    }
    protected void checkHardWare() {
        System.out.println("硬件檢查");
    }
    protected void loadOS() {
        System.out.println("載入操作系統");
    }
    protected void login() {
        System.out.println("通過用戶驗證");
    }
    public final void startUp() {
        System.out.println("--------開機  START----------");
        powerOn();
        checkHardWare();
        loadOS();
        login();
        System.out.println("--------關機  END----------");
}
}

 

2 定義實現的實體類:在子類中,可用重寫特定步驟

package modelpattern;

public class CoderComputer extends AbstractComputer{
    @Override
    protected void login() {
        System.out.println("程序員用賬號和密碼登錄");
    }
}

 

以及:

package modelpattern;

public class MilitaryComputer extends AbstractComputer{
    @Override
    protected void checkHardWare() {
        super.checkHardWare();
        System.out.println("檢查硬件防火牆");
    }
    @Override
    protected void login() {
        System.out.println("進行指紋識別用戶驗證");
    }

}

 

3, 在測試類中運行結果:

package modelpattern;

public class Test {
    public static void main(String[] args) {
        AbstractComputer computer = new CoderComputer();
        computer.startUp();
        computer = new MilitaryComputer();
        computer.startUp();
        
    }
}
 4 查看輸出的結果:

 

--------開機  START----------
開啓電源
硬件檢查
載入操作系統
程序員用賬號和密碼登錄
--------關機  END----------
--------開機  START----------
開啓電源
硬件檢查
檢查硬件防火牆
載入操作系統
進行指紋識別用戶驗證
--------關機  END----------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章