質問

GUIを備えた小さなFlashゲームを作成しようとしています。これは基本的に、プレイヤーがタワーディフェンスゲームのような特定のアイテムを選択できるメニューです。

GUIをシングルトンにすることは良い考えでしょうか?明らかに、GUIクラスのインスタンスは1つしか存在できないからです。

もっと良い方法はありますか?

役に立ちましたか?

解決

私の意見では、システムの残りの部分はGUIについて知らないはずなので、それをシングルトンにすることは無意味です。ビュー(GUI)は、現在の状態を表示するために、ある種のモデルにバインドする必要があります。

一般に、シングルトンを完全に回避することをお勧めします。

モデルにバインドするということは、そのようなことを意味します:

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'));
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top