代碼詳解設計模式--模板模式

模板模式

  一個抽象類公開定義了執行方法的模板,它的子類可以按需要重寫方法實現,但調用將以抽象類中定義的方式進行。

  • 優點:
  1. 封裝不變部分,擴展可變部分。
  2. 提取公共代碼,便於維護。
  3. 行爲由父類控制,子類實現。
  • 缺點:
  1. 每個不同實現都需要一個子類來實現。
    UML
//遊戲模板類
public abstract class Game {
   abstract void initialize();
   abstract void startPlay();
   abstract void endPlay();
 
   //模板
   public final void play(){
      //初始化遊戲
      initialize();
      //開始遊戲
      startPlay();
      //結束遊戲
      endPlay();
   }
}
// 足球遊戲
public class Football extends Game {
   @Override
   void initialize() {
      System.out.println("準備足球");
   }
 
   @Override
   void startPlay() {
      System.out.println("踢足球");
   }
   
   @Override
   void endPlay() {
      System.out.println("收拾足球");
   }
}
//籃球遊戲
public class Basketball extends Game {
   @Override
   void initialize() {
      System.out.println("準備籃球");
   }
 
   @Override
   void startPlay() {
      System.out.println("打籃球");
   }
   
   @Override
   void endPlay() {
      System.out.println("收拾籃球");
   }
}
//使用示例
public class Demo {
   public static void main(String[] args) {
      // 足球
      Game game1 = new Football();
      game1.play();
      
      // 籃球
      Game game2 = new Basketball();
      game2.play();      
   }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章