1. 程式人生 > >設計模式快速學習(六)模板模式

設計模式快速學習(六)模板模式

舉個例子:我們寫HTML的時候,先寫head然後寫body,這樣完成了一個空HTML頁面的架子,我們的這一系列行為就是一個模板。模板模式中,首先會定義一個抽象類來宣告這個事件模板,子類實現並被呼叫。也是很簡單的一個設計模式。

JDBC就是用到了模板模式:

Game.class

抽象類。定義模板。

public abstract class Game {
    abstract void init();
    abstract void start();
    abstract void end();

    /**
     * 方法必須是final ,固定的模板不允許改變
     */
    public final void play
(){ init(); start(); end(); } } 複製程式碼

play()就是我定義的模板,子類繼承後必須實現該具體功能。

LoL.java
public class LoL extends Game{
    @Override
    void init() {
        System.out.println("LOL initialize ....");
    }

    @Override
    void start() {
        System.out.println("LOL  starting...."
); } @Override void end() { System.out.println("LOL ending..."); } } 複製程式碼
Dota.java
public class Dota extends Game{
    @Override
    void init() {
        System.out.println("Dota  initialize ....");
    }

    @Override
    void start() {
        System.out.println("Dota  starting...."
); } @Override void end() { System.out.println("Dota ending..."); } } 複製程式碼
Main.java
public class Main {
    public static void main(String[] args) {
        Game game= new LoL();
        game.play();

        game = new Dota();
        game.play();

    }
}
複製程式碼

控制檯列印:

LOL initialize ....
LOL  starting....
LOL  ending...
Dota  initialize ....
Dota  starting....
Dota  ending...
複製程式碼