Pregunta

Estoy tratando de hacer un pequeño juego Flash que tenga una GUI, que es básicamente un menú donde los jugadores pueden seleccionar ciertos elementos, como los juegos de Tower Defense.

¿Sería una buena idea hacer que la GUI sea un singleton? Porque obviamente solo puede haber 1 instancia de la clase GUI.

¿Hay una mejor manera?

¿Fue útil?

Solución

En mi opinión, el resto del sistema no debería saber acerca de su GUI, por lo que hacer que sea un singleton no tiene sentido. La vista (GUI) debe vincularse a algún tipo de modelos para mostrar el estado actual.

En general, es una buena idea evitar Singletons por completo.

Al enlazar a un modelo me refiero a algo así:

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'));
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top