Entwurfsmuster - Vorlagenmuster

Im Vorlagenmuster stellt eine abstrakte Klasse definierte Methoden / Vorlagen zur Ausführung ihrer Methoden bereit. Seine Unterklassen können die Methodenimplementierung nach Bedarf überschreiben, der Aufruf muss jedoch auf dieselbe Weise erfolgen, wie sie von einer abstrakten Klasse definiert wird. Dieses Muster fällt unter die Kategorie Verhaltensmuster.

Implementierung

Wir werden eine erstellen Spiel abstrakte Klasse Operationen definiert , mit einem Template - Methode Satz endgültig so sein , dass es nicht außer Kraft gesetzt werden kann. Cricket und Fußball sind konkrete Klassen, die das Spiel erweitern und seine Methoden außer Kraft setzen.

TemplatePatternDemo , unsere Demo-Klasse, verwendet Game , um die Verwendung von Vorlagenmustern zu demonstrieren.

Schritt 1

Erstellen Sie eine abstrakte Klasse, wobei eine Vorlagenmethode endgültig ist.

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

Schritt 2

Erstellen Sie konkrete Klassen, die die obige Klasse erweitern.

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

Schritt 3

Verwenden Sie das Spiel ‚s Template - Methode play () eine definierte Art und Weise des Spielens Spiel zu demonstrieren.

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

Schritt 4

Überprüfen Sie die Ausgabe.

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!