1. 程式人生 > >程式碼詳解設計模式--模板模式

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

模板模式

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

  • 優點:
  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(); } }