Factory method: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
The class name not use capital letter |
m tag source deprecati, replaced: <source lang= → <syntaxhighlight lang= (3), </source> → </syntaxhighlight> (3) |
||
Riga 25:
Un gioco del labirinto può essere giocato in due modi, uno con stanze regolari che sono connesse solo a quelle adiacenti e uno con stanze magiche che possono trasportare i giocatori in stanze casuali lungo tutto il labirinto (questo esempio in [[Java (linguaggio di programmazione)|Java]] è simile a quello presente sul libro ''[[Design Patterns]]''). Il gioco regolare può usare un modello del tipo:
<
public class MazeGame {
public MazeGame() {
Riga 39:
}
}
</syntaxhighlight>
Nel codice summenzionato, il costruttore <code>MazeGame</code> è un template che fornisce della logica comune e fa riferimento al metodo factory <code>makeRoom</code> che incapsula la logica di creazione delle stanza in modo che le stanze possano essere utilizzate nelle sottoclassi. Per implementare l'altra modalità di gioco, infatti, è necessario solo ridefinire <code>makeRoom</code> per l'implementazione delle stanze magiche:
<
public class MagicMazeGame extends MazeGame {
@Override
Riga 50:
}
}
</syntaxhighlight>
=== PHP ===
Un esempio in [[PHP]] è qui riportato:
<
// uso di Factory Method design pattern
Riga 278:
//Nome Fiat modificato in Bianchi
//Test Bianchi superato
</syntaxhighlight>
== Limitazioni ==
|