Die Vorlage ist eines der Verhaltensentwurfsmuster. Eine abstrakte Klasse definiert eine Reihe von Möglichkeiten/Vorlagen zur Ausführung ihrer Methoden.
Seine Unterklassen können diese Methoden überschreiben/implementieren, aber der Aufruf muss auf die gleiche Weise erfolgen, wie er von einer abstrakten Klasse definiert wird
Lassen Sie uns dies anhand eines Beispiels verstehen:
Schlüsselkonzepte
Vorlage: Eine abstrakte Klasse, die die Struktur/Methode/Vorlage des Algorithmus definiert
Konkrete Implementierung: Konkrete Implementierung der Vorlage
Kunde: Kunde, der diese Vorlage verwenden wird
public abstract class GameVorlage{ //these below methods can be overridden based on the type of game public abstract void initialize(); public abstract void startPlay(); public abstract void endPlay(); //All the subclasses must use this same method to play the game i.e. following the same template present in this method, //Hence it is declared as final. public final void play(){ initialize(); startPlay(); endPlay(); } } public class Cricket extends GameVorlage{ @Override public void initialize(){ System.out.println("Cricket has been initialized"); } @Override public void startPlay(){ System.out.println("Cricket game has been started"); } @Override public void endPlay(){ System.out.println("Cricket game has ended"); } } public class Football extends GameVorlage{ @Override public void initialize(){ System.out.println("Football has been initialized"); } @Override public void startPlay(){ System.out.println("Football game has been started"); } @Override public void endPlay(){ System.out.println("Football game has ended"); } } public class Main{ public static void main(String args[]){ //Create a football game object GameVorlage football = new Football(); football.play();// play() will strictly follow the sequence of method execution defined in the final play() method GameVorlage cricket = new Cricket(); cricket.play(); } }
Ausgabe:
Football has been initialized Football game has been started Football game has ended Cricket has been initialized Cricket game has been started Cricket game has ended
Hinweis: Der Code folgt allen Designprinzipien wie LSP, ISP, SRP, OCP
Das obige ist der detaillierte Inhalt vonVorlage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!