Latest web development tutorials

Modo de plantilla

En el modo de plantilla (patrón de plantilla), y una clase abstracta que define la forma de ejecutar que describe un método / plantilla. Sus subclases que sobreescribir el método se puede lograr, pero se llama será definido clase abstracta. Este tipo de patrones de diseño pertenecen los patrones de comportamiento.

introducción

Intención: Definir un algoritmo de operación esqueleto, aplazando algunos pasos para subclases.Plantilla método permite que las subclases de un algoritmo sin cambiar la estructura de una etapa particular del algoritmo puede ser redefinido.

Solución principal: Algunos método común, pero en cada subclase de re-escribir este enfoque.

Cuándo utilizar: Hay algunos métodos comunes.

¿Cómo resolver: éstos algoritmo general abstraído.

El código de la llave: Extracto declase implementa los otros pasos en la implementación de sub-clase.

Ejemplos de aplicación: 1, cuando en una casa construida, fundaciones, cableado, tuberías de agua son los mismos, sólo en la última parte del edificio tiene un armario plus plus vallas diferencias.2, Viaje al Oeste dar un buen Buda en el interior 81 difícil, se trata de un marco lógico de nivel superior. 3, Spirng en apoyo de hibernación, ya que algunos han dado una buena forma de encapsular, tales como las transacciones abiertas, la obtención de la sesión, cierre de sesión y otros programadores que no se han repetido escribir buenas normas de código, un tiro directo que una entidad puede ser salvado.

Ventajas: 1, parte del mismo paquete, extendidos parte variable.2, extraer código común, fácil de mantener. 3, el comportamiento es controlado por la clase padre, aplicación subclase.

Desventajas: cada una de las diferentes implementaciones requieren una subclase de alcanzar, lo que resulta en un aumento en el número de clases, haciendo el sistema más sustancial.

Escenarios de uso: 1, método común subclase múltiple, y la misma lógica.2, los métodos importantes, los complejos pueden ser considerados como un método de plantilla.

Nota: Para evitar acciones maliciosas, junto con los métodos generales de la plantilla son palabras clave finales.

realización

Vamos a crear una clase abstracta de encargo la accióndel juego,en el que el método de la plantilla se establece en definitiva, por lo que no se sobrescribirá.Cricketypartidode fútbol es una extensión de la clase de entidad, que anula la clase abstracta.

TemplatePatternDemo,se demuestra el uso de la clasede juegopara demostrar el uso de un patrón de plantilla.

Modelo del modelo diagrama UML

Paso 1

Crear una clase abstracta que método de plantilla se pone a la final.

Game.java

Juego clase abstracta pública {
   abstract void initialize ();
   abstract void startPlay ();
   abstract void juego longitudinal ();

   // Plantilla void play public final () {

      // Inicializar el juego initialize ();

      // Inicia el juego startPlay ();

      // Fin juego de juego libre ();
   }
}

Paso 2

Crear extiende por encima de las clases de entidad de clase.

Cricket.java

Cricket clase pública se extiende Juego {

   @ Override
   vacío de juego libre () {
      System.out.println ( "Cricket juego terminado!");
   }

   @ Override
   initialize void () {
      System.out.println ( "! Cricket Game Initialized empezar a jugar.");
   }

   @ Override
   startPlay void () {
      System.out.println ( "Cricket juego comenzó disfrutar del juego.!");
   }
}

Football.java

Fútbol clase pública se extiende Juego {

   @ Override
   vacío de juego libre () {
      System.out.println ( "Terminado el partido de fútbol!");
   }

   @ Override
   initialize void () {
      System.out.println ( "! Partido de fútbol Initialized empezar a jugar.");
   }

   @ Override
   startPlay void () {
      System.out.println ( "El fútbol juego comenzó disfrutar del juego.!");
   }
}

paso 3

Juegoutilizando el método play plantilla () para demostrar el juego se definen.

TemplatePatternDemo.java

TemplatePatternDemo public class {
   principales argumentos (String []) {public static void

      Juego juego = new Cricket ();
      game.play ();
      System.out.println ();
      juego de fútbol = new ();
      game.play ();		
   }
}

Paso 4

Verifique la salida.

Cricket Game iniciada! Empieza a jugar.
Cricket juego comenzó. Disfrutar del juego!
Cricket juego terminado!

Partido de fútbol Initialized! Empieza a jugar.
Comienza el partido de fútbol. Disfrutar del juego!
Terminado el partido de fútbol!