Nel pattern Template Method, una classe astratta espone modi e template per eseguire i suoi metodi. Le sue sottoclassi possono sovrascrivere l’implementazione del metodo secondo le necessità, ma l’invocazione deve avvenire nello stesso modo definito dalla classe astratta.
Il template pattern rientra nella categoria dei Comportamentali.
DIAGRAMMA UML TEMPLATE METHOD
IMPLEMENTAZIONE TEMPLATE METHOD
Step 1: Creiamo la classe astratta con il Template Method
public abstract class Gioco {
abstract void init();
abstract void start();
abstract void end();
//template method
public final void gioca(){
//Inizializza il gioco
init();
//Lancia il gioco
start();
//Termina il gioco
end();
}
}
Step 2: Creiamo le classi concrete che la estendono
Calcio.java
public class Calcio extends Gioco {
@Override
void end() {
System.out.println("[CALCIO]::end()");
}
@Override
void init() {
System.out.println("[CALCIO]::init()");
}
@Override
void start() {
System.out.println("[CALCIO]::start()");
}
}
Rugby.java
public class Rugby extends Gioco {
@Override
void end() {
System.out.println("[RUGBY]::end()");
}
@Override
void init() {
System.out.println("[RUGBY]::init()");
}
@Override
void start() {
System.out.println("[RUGBY]::start()");
}
}
Step 3: Creiamo il main
public class Main {
public static void main(String[] args) {
Gioco gioco = new Calcio();
gioco.gioca();
gioco = new Rugby();
gioco.gioca();
}
}
Step 4: Output
[CALCIO]::init()
[CALCIO]::start()
[CALCIO]::end()
[RUGBY]::init()
[RUGBY]::start()
[RUGBY]::end()
0 Comments