Pola Desain - Pola Template

Dalam pola Template, kelas abstrak memperlihatkan cara / template yang ditentukan untuk mengeksekusi metodenya. Subkelasnya dapat mengganti implementasi metode sesuai kebutuhan tetapi pemanggilannya harus dengan cara yang sama seperti yang didefinisikan oleh kelas abstrak. Pola ini termasuk dalam kategori pola perilaku.

Penerapan

Kita akan membuat operasi yang mendefinisikan kelas abstrak Game dengan metode templat yang disetel ke final sehingga tidak dapat diganti. Cricket dan Football adalah kelas konkret yang memperluas Game dan mengganti metodenya.

TemplatePatternDemo , kelas demo kami, akan menggunakan Game untuk mendemonstrasikan penggunaan pola template.

Langkah 1

Buat kelas abstrak dengan metode template yang sudah final.

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();
   }
}

Langkah 2

Buat kelas beton yang memperluas kelas di atas.

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!");
   }
}

LANGKAH 3

Gunakan metode template Game play () untuk mendemonstrasikan cara bermain game yang ditentukan.

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();		
   }
}

LANGKAH 4

Verifikasi hasilnya.

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!