Pergunta

Eu estou tentando fazer um jogo pequeno flash que tem um GUI, que é basicamente um menu onde os jogadores podem selecionar certos itens, como o tipo de jogos de Tower Defense.

Seria uma boa idéia para fazer a GUI um singleton? Porque, obviamente, só pode haver uma instância da classe GUI.

Existe uma maneira melhor?

Foi útil?

Solução

Na minha opinião, o resto do sistema não deve saber sobre seu GUI, assim tornando-se um singleton é inútil. O View (GUI) deve ligar-se a algum tipo de modelos para mostrar o estado atual.

Em geral, é uma boa idéia para evitar Singletons completamente.

Ao ligar-se um modelo que quero dizer algo assim:

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top