Latest web development tutorials

mode Gabarit

Dans le mode de gabarit (Template Pattern), et une classe abstraite qui définit comment l'exécuter décrit un procédé / template. Ses sous-classes doivent remplacer la méthode peut atteindre, mais est appelée classe abstraite sera définie. Ce type de modèles de conception appartiennent schémas comportementaux.

introduction

Intention: Définir un algorithme de fonctionnement du squelette, tout en reportant certaines étapes aux sous - classes.Méthode modèle permet de sous-classes d'un algorithme sans changer la structure d'une étape particulière de l'algorithme peut être redéfini.

Solution principale: une méthode commune, mais dans chaque sous-classe récrire cette approche.

Quand utiliser: Il existequelques méthodes communes.

Comment résoudre: ces algorithme général abstrait.

Le code clé: résumé classe implémente les autres étapes de la mise en œuvre sous-classe.

Exemples d'application: 1, lorsque dans une maison construite, les fondations, le câblage, les conduites d'eau sont les mêmes, que dans la dernière partie du bâtiment ont un placard plus plus de clôtures et d' autres différences.2, Journey to the West a établi un bon Bouddha à l'intérieur 81 difficile, cela est un cadre logique de niveau supérieur. 3, spirng à l'appui Hibernate, certains ont déjà donné un bon moyen d'encapsuler, telles que les transactions ouvertes, l'obtention Session, Fermer la session et d'autres programmeurs qui ne sont pas répétées écrire de bonnes normes de code, touche directe d'une entité peut être sauvé.

Avantages: 1, partie du même paquet, étendu part variable.2, extraire le code commun, facile à entretenir. 3, le comportement est contrôlé par la classe parente, la mise en œuvre sous-classe.

Inconvénients: chacune des différentes mises en oeuvre ont besoin d' une sous - classe pour réaliser, ce qui entraîne une augmentation du nombre de classes, ce qui rend le système plus important.

Scénarios d' utilisation:1, méthode commune sous-catégories multiples, et la même logique. 2,, les méthodes complexes importants peuvent être considérés comme une méthode de modèle.

Remarque: Pour éviter des actions malveillantes, couplées avec les méthodes de modèles généraux sont des mots - clés finaux.

réalisation

Nous allons créer unjeud'action personnalisé classe abstraite, dans lequel le procédé de modèle est défini pour la finale, donc il ne sera pas écrasé.CricketetFootballGame est une extension de classes d'entités, et ils ont réécrit la classe abstraite.

TemplatePatternDemo,nous démontrons l'utilisation de la classede jeupour démontrer l'utilisation d'un modèle de modèle.

motif Template diagramme UML

Etape 1

Créer une classe abstraite, sa méthode de modèle est défini à la finale.

Game.java

Jeu public abstract class {
   abstract initialize void ();
   abstract void StartPlay ();
   abstrait jeu axial vide ();

   // Template jeu vide public final () {

      // Initialisation de la initialize de jeu ();

      // Démarrer le jeu StartPlay ();

      // Fin du jeu le jeu axial ();
   }
}

Etape 2

Créer étend les classes d'entités ci-dessus classe.

Cricket.java

Cricket public class jeu {

   @Override
   vide jeu axial () {
      System.out.println ( "Jeu de Cricket Terminé!");
   }

   @Override
   initialize void () {
      System.out.println ( "! Cricket Jeu Initialisé Commencez à jouer.");
   }

   @Override
   vide StartPlay () {
      System.out.println ( "Cricket jeu a commencé Appréciez le jeu.!");
   }
}

Football.java

Football public class jeu {

   @Override
   vide jeu axial () {
      System.out.println ( "Game Football Terminé!");
   }

   @Override
   initialize void () {
      System.out.println ( "! Football Game Initialisé Commencez à jouer.");
   }

   @Override
   vide StartPlay () {
      System.out.println ( "Football Game Started Appréciez le jeu.!");
   }
}

Etape 3

Jeuen utilisant le modèle de méthode play () pour démontrer le jeu sont définis.

TemplatePatternDemo.java

public class TemplatePatternDemo {
   main (String [] args) {public static void

      Game jeu = new Cricket ();
      game.play ();
      System.out.println ();
      jeu = new Football ();
      game.play ();		
   }
}

Etape 4

Vérifiez la sortie.

Jeu de Cricket initialisée! Commencez à jouer.
Cricket Game Démarré. Profitez du jeu!
Jeu de Cricket Terminé!

Football Game Initialisé! Commencez à jouer.
Football jeu a commencé. Profitez du jeu!
Jeu de Football Terminé!