Design GUI orientato agli oggetti AS3
-
05-07-2019 - |
Domanda
Sto cercando di creare un piccolo gioco Flash con una GUI, che è fondamentalmente un menu in cui i giocatori possono selezionare determinati elementi, un po 'come i giochi di Tower Defense.
Sarebbe una buona idea rendere la GUI un singleton? Perché ovviamente può esserci solo 1 istanza della classe GUI.
C'è un modo migliore?
Soluzione
A mio avviso, il resto del sistema non dovrebbe conoscere la tua GUI, quindi renderlo un singleton è inutile. La vista (GUI) dovrebbe legarsi a un qualche tipo di modello per mostrare lo stato corrente.
In generale, è una buona idea evitare del tutto i Singleton.
Per associazione a un modello intendo qualcosa del genere:
class MyGUI
{
...
public function set game(g:Game):void {
g.addEventListener('pointsChanged', function(e:Event):void {
ptsLabel.text = g.points.toString() + " points";
})
}
}
class Game extends EventDispatcher
{
private var _points:int = 0;
public function get points():int {
return _points;
}
public function set points(points:int):void {
_points = points;
dispatchEvent(new Event('pointsChanged'));
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow