-4

シングルトン クラスを実装する場合、flex のコンストラクターをプライベートにすることはできないため、他のクラスはそのシングルトン クラスを新しくすることができます。「プライベート」コンストラクターを使用して Singleton クラスを実装するソリューションを見つけました。

package
{
    public class Singleton
    {
        public static function get Instance():SingletonPrivate
        {
            return SingletonPrivate.Instance;
        }
    }
}
class SingletonPrivate
{
    public static const Instance:SingletonPrivate = new SingletonPrivate();
    public function SingletonPrivate()
    {       

    }

    public function getValue():String
    {
        return "Hello World";
    }
}
4

1 に答える 1

3

これは、ActionScriptの内部スコープのみです。また、インスタンスがすでに作成されているかどうかを確認しないため、理論的には新しいインスタンスを作成できます。再確認することはありません。

ただし、シングルトンは避けることをお勧めします。ほとんどの iOC フレームワークと同様に、モデルを作成するコンテキストを 1 つ持つことができます。そこで、すべてのインスタンスを作成し、コンストラクターまたはインスタンスのセッターを介してそれらを注入できます。クラスをシングルトンとして使用する必要があるかどうかを誰も考える必要がないため、これはよりクリーンなアプローチです。View Controller は、そのようなコンテキストでも作成できます。シングルトンはそれほど有用ではありません。

于 2012-06-06T05:58:40.230 に答える