Saltar al contenido

Patrones de diseño: patrón de plantilla

octubre 20, 2021
template pattern uml diagram

En el patrón de plantilla, una clase abstracta expone formas / plantillas definidas para ejecutar sus métodos. Sus subclases pueden anular la implementación del método según sea necesario, pero la invocación debe realizarse de la misma manera que la definida por una clase abstracta. Este patrón se incluye en la categoría de patrón de comportamiento.

Implementación

Vamos a crear un Juego operaciones de definición de clases abstractas con un método de plantilla establecido como final para que no se pueda anular. Grillo y Fútbol americano son clases concretas que se extienden Juego y anular sus métodos.

PlantillaPatrónDemo, nuestra clase de demostración, utilizará Juego para demostrar el uso del patrón de plantilla.

Patrón de plantilla Diagrama UML

Paso 1

Cree una clase abstracta con un método de plantilla que sea definitivo.

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

Paso 2

Cree clases concretas ampliando la clase anterior.

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

Paso 3

Utilizar el JuegoEl método de plantilla play () para demostrar una forma definida de jugar.

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

Paso 4

Verifique la salida.

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!
close