Mẫu thiết kế - Mẫu mẫu

Trong mẫu Template, một lớp trừu tượng trình bày (các) cách / (các) mẫu đã xác định để thực thi các phương thức của nó. Các lớp con của nó có thể ghi đè việc triển khai phương thức theo nhu cầu nhưng lời gọi phải theo cách giống như được định nghĩa bởi một lớp trừu tượng. Mẫu này nằm trong danh mục mẫu hành vi.

Thực hiện

Chúng ta sẽ tạo một thao tác xác định lớp trừu tượng Trò chơi với một phương thức mẫu được đặt thành cuối cùng để nó không thể bị ghi đè. CricketFootball là các lớp cụ thể mở rộng Trò chơi và ghi đè các phương thức của nó.

TemplatePatternDemo , lớp demo của chúng tôi, sẽ sử dụng Game để chứng minh việc sử dụng mẫu mẫu.

Bước 1

Tạo một lớp trừu tượng với một phương thức mẫu là cuối cùng.

Game.java

public abstract class Game {
   abstract void initialize();
   abstract void startPlay();
   abstract void endPlay();

   //template method
   public final void play(){

      //initialize the game
      initialize();

      //start game
      startPlay();

      //end game
      endPlay();
   }
}

Bước 2

Tạo các lớp cụ thể mở rộng lớp trên.

Cricket.java

public class Cricket extends Game {

   @Override
   void endPlay() {
      System.out.println("Cricket Game Finished!");
   }

   @Override
   void initialize() {
      System.out.println("Cricket Game Initialized! Start playing.");
   }

   @Override
   void startPlay() {
      System.out.println("Cricket Game Started. Enjoy the game!");
   }
}

Football.java

public class Football extends Game {

   @Override
   void endPlay() {
      System.out.println("Football Game Finished!");
   }

   @Override
   void initialize() {
      System.out.println("Football Game Initialized! Start playing.");
   }

   @Override
   void startPlay() {
      System.out.println("Football Game Started. Enjoy the game!");
   }
}

Bước 3

Sử dụng các trò chơi mẫu phương pháp chơi 's () để chứng minh một cách xác định chơi trò chơi.

TemplatePatternDemo.java

public class TemplatePatternDemo {
   public static void main(String[] args) {

      Game game = new Cricket();
      game.play();
      System.out.println();
      game = new Football();
      game.play();		
   }
}

Bước 4

Xác minh kết quả đầu ra.

Cricket Game Initialized! Start playing.
Cricket Game Started. Enjoy the game!
Cricket Game Finished!

Football Game Initialized! Start playing.
Football Game Started. Enjoy the game!
Football Game Finished!