Question

J'essaie de créer un petit jeu Flash doté d'une interface graphique, qui est essentiellement un menu dans lequel les joueurs peuvent sélectionner certains éléments, un peu comme les jeux Tower Defense.

Serait-ce une bonne idée de faire de l'interface graphique un singleton? Parce qu'il est évident qu'il ne peut y avoir qu'une seule instance de la classe d'interface graphique.

Y a-t-il un meilleur moyen?

Était-ce utile?

La solution

À mon avis, le reste du système ne doit pas connaître votre interface utilisateur graphique, il est donc inutile de l'utiliser comme singleton. La vue (interface graphique) doit être liée à certains types de modèles pour afficher l’état actuel.

En général, il vaut mieux éviter les singletons.

En me liant à un modèle, je veux dire quelque chose comme ça:

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'));
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top