Factory method: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
The class name not use capital letter
ValterVBot (discussione | contributi)
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:
 
<sourcesyntaxhighlight lang=Java>
public class MazeGame {
public MazeGame() {
Riga 39:
}
}
</syntaxhighlight>
</source>
 
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:
 
<sourcesyntaxhighlight lang=Java>
public class MagicMazeGame extends MazeGame {
@Override
Riga 50:
}
}
</syntaxhighlight>
</source>
 
=== PHP ===
Un esempio in [[PHP]] è qui riportato:
<sourcesyntaxhighlight lang="php">
// uso di Factory Method design pattern
 
Riga 278:
//Nome Fiat modificato in Bianchi
//Test Bianchi superato
</syntaxhighlight>
</source>
 
== Limitazioni ==