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?

È stato utile?

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
scroll top