設計模式之模板方法模式

        模板方法模式就是把很多相同的業務流程抽象出來,定義一個公用的模板方法,具體的業務類可以複用這個模板方法,但是具體的業務實現可以在不同的實現類中實現,就像簡歷模板、入會申請書模板類似。該模式封裝了不可變的部分,擴展可變部分,在父類中提取了公共的方法,以便子類複用。

      我們就用遊戲舉例子吧,所有的遊戲都有遊戲開始、遊戲進行中,遊戲結束這三個過程,但是遊戲有籃球,足球,檯球等很多種,我們可以把這三個過程提取出來,無論是什麼遊戲,這三個過程都可以被複用,這三個過程就是模板方法,看代碼吧。

創建遊戲類。

public abstract class Game {
  abstract void start();
  abstract void runing();
  abstract void end();
  //模板方法
  public final void play(){
    start();//開始遊戲
    runing();//遊戲進行中
    end();//遊戲結束
  }
}

創建具體遊戲類,如籃球遊戲。

public class Basketball extends Game{
  @Override
  void start() {
      System.out.println("籃球遊戲開始");
  }
  @Override
  void runing() {
    System.out.println("籃球遊戲進行中");
  }
  @Override
  void end() {
    System.out.println("籃球遊戲結束");  
  }
}

創建具體遊戲類,如足球遊戲。

public class Football extends Game{
  @Override
  void start() {
    System.out.println("足球遊戲開始"); 
  }
  @Override
  void runing() {
    System.out.println("足球遊戲進行中");
  }
  @Override
  void end() {
    System.out.println("足球遊戲結束");
  }
}

創建測試類:

public class MoudleTest {
  public static void main(String[] args) {
    Game game = new Basketball();
    game.play();
    System.out.println();
    game = new Football();
    game.play();
  }
}

測試結果:

籃球遊戲開始
籃球遊戲進行中
籃球遊戲結束

足球遊戲開始
足球遊戲進行中
足球遊戲結束

 

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