Modèles de conception - Modèle de modèle

Dans le modèle de modèle, une classe abstraite expose les moyens / modèles définis pour exécuter ses méthodes. Ses sous-classes peuvent remplacer l'implémentation de la méthode selon les besoins, mais l'appel doit être de la même manière que celle définie par une classe abstraite. Ce modèle appartient à la catégorie des modèles de comportement.

la mise en oeuvre

Nous allons créer une classe abstraite Game définissant les opérations avec une méthode de modèle définie pour être finale afin qu'elle ne puisse pas être remplacée. Le cricket et le football sont des classes concrètes qui étendent le jeu et écrasent ses méthodes.

TemplatePatternDemo , notre classe de démonstration, utilisera Game pour démontrer l'utilisation du modèle de modèle.

Étape 1

Créez une classe abstraite avec une méthode de modèle finale.

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

Étape 2

Créez des classes concrètes étendant la classe ci-dessus.

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

Étape 3

Utilisez le jeu méthode modèle de jeu () pour démontrer d' une manière définie de jouer jeu.

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

Étape 4

Vérifiez la sortie.

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!