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