Modelli di design - Modello di modello
In Template pattern, una classe astratta espone modi / modelli definiti per eseguire i propri metodi. Le sue sottoclassi possono sovrascrivere l'implementazione del metodo secondo necessità, ma l'invocazione deve essere nello stesso modo definito da una classe astratta. Questo modello rientra nella categoria del modello di comportamento.
Implementazione
Creeremo una classe astratta del gioco che definisce le operazioni con un metodo modello impostato come finale in modo che non possa essere sovrascritto. Cricket e Football sono classi concrete che estendono il gioco e ne ignorano i metodi.
TemplatePatternDemo , la nostra classe demo, utilizzerà Game per dimostrare l'uso del pattern pattern.
Passo 1
Crea una classe astratta con un metodo modello finale.
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();
}
}
Passo 2
Crea classi concrete che estendono la classe precedente.
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!");
}
}
Passaggio 3
Utilizzare il gioco Template Method gioco s'() per dimostrare un modo definito di giocare gioco.
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();
}
}
Passaggio 4
Verifica l'output.
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!