Das beste Vorlagenmodus-Tutorial im Jahr 2024. In diesem Tutorial können Sie Einführung,Realisierung, lernen
Im Template-Modus (Template-Muster) und eine abstrakte Klasse, wie sie offenbart ein Verfahren / Vorlage auszuführen definiert. Die Unterklassen müssen die Methode außer Kraft setzen kann erreicht werden, wird aber abstrakte Klasse bezeichnet wird definiert. Diese Art von Entwurfsmustern gehören Verhaltensmuster.
Intent: Definieren eines Skeletts Betriebsalgorithmus, während einige Schritte zu Subklassen aufzuschieben.Template-Methode können Subklassen eines Algorithmus, ohne die Struktur eines bestimmten Schritt des Algorithmus zu ändern können neu definiert werden.
Haupt Lösung: Einige gängige Methode, aber in jeder Unterklasse neu schreiben diesen Ansatz.
Wann verwendet man :Esgibteinige allgemeine Methoden.
Wie zu lösen: diese allgemeinen Algorithmus abstrahiert.
Der Schlüsselcode: abstrakte Klasse implementiert , die anderen Schritte in der Unterklasse Umsetzung.
Anwendungsbeispiele: 1, wenn in einem Haus gebaut, Fundamente, Leitungen, Wasserleitungen sind die gleichen, nur im letzten Teil des Gebäudes haben einen Schrank plus plus Zäune Unterschiede.2, Die Reise nach Westen einen guten Buddha in 81 schwer gesetzt, ist dies ein Top-Level-logischen Rahmen. 3, Spirng in Hibernate Unterstützung, haben einige von ihnen bereits eine gute Möglichkeit gegeben, wie offene Transaktionen einkapseln, zu erhalten Session, Session schließen und andere Programmierer, die keine Schreib guten Code Normen wiederholt haben, direkten Wurf ein Unternehmen gespeichert werden können.
Vorteile: 1, Teil des gleichen Pakets, erweitert variablen Teil.2, extrahieren gemeinsamen Code, leicht zu pflegen. 3 wird das Verhalten von der übergeordneten Klasse, Unterklasse Implementierung gesteuert.
Nachteile: jede der verschiedenen Implementierungen erfordern eine Unterklasse zu erreichen, in einer Erhöhung der Anzahl der Klassen führt, was das System erheblich.
Einsatzszenarien: 1, mehrere Unterklasse übliche Methode, und die gleiche Logik.2, wichtig, komplexe Methoden als Vorlage Methode betrachtet werden.
Hinweis: Um schädliche Aktionen, verbunden mit den allgemeinen Vorlage Methoden sind endgültig Keywords verhindern.
Wir werden eine benutzerdefinierte AktionSpielabstrakte Klasse zu erstellen, wobei die Template - Methode bis zur endgültigen gesetzt ist, so wird es nicht überschrieben werden.CricketandFootball-Spielist eine Erweiterung des Entity - Klasse, die die abstrakte Klasse außer Kraft setzt.
TemplatePatternDemo,zeigen wir die Verwendung vonSpielklassedie Verwendung eines Schablonenmuster zu demonstrieren.
Erstellen Sie eine abstrakte Klasse, wird sein Template-Methode zur endgültigen gesetzt.
Game.java
public abstract class Spiel { abstract void initialize (); abstract void startPlay (); abstract void Axialspielstruktur (); // Template public final nichtig play () { // Initialisieren Sie das Spiel initialize (); // Starten Sie das Spiel startPlay (); // End Spiel Axialspielstruktur (); } }
Erstellen Sie die Entitätsklassen oben Klasse erweitert.
Cricket.java
public class Cricket erstreckt Spiel { @Override Leere Axialspielstruktur () { System.out.println ( "Cricket Spiel beendet!"); } @Override void initialize () { System.out.println ( "! Cricket Spiel Initialized beginnen zu spielen."); } @Override Leere startPlay () { System.out.println ( "Cricket Spiel begann das Spiel genießen.!"); } }
Football.java
public class Fußball erstreckt Spiel { @Override Leere Axialspielstruktur () { System.out.println ( "Football Spiel beendet!"); } @Override void initialize () { System.out.println ( "! Fußballspiel Initialized beginnen zu spielen."); } @Override Leere startPlay () { System.out.println ( "Fußballspiel begann das Spiel zu genießen.!"); } }
Spieldie Template - Methode play () mit dem Spiel zu zeigen , definiert.
TemplatePatternDemo.java
public class TemplatePatternDemo { public static void main (String [] args) { Spiel spiele = new Cricket (); game.play (); System.out.println (); Spiel = new Fußball (); game.play (); } }
Stellen Sie sicher, ausgegeben.
Cricket-Spiel Initialized! Starten Sie die Wiedergabe. Cricket Spiel gestartet. Das Spiel genießen! Cricket Spiel beendet! Fußballspiel Initialized! Starten Sie die Wiedergabe. Fußball-Spiel gestartet. Das Spiel genießen! Fußballspiel Fertig!