facebook twitter hatena line email

Flash/as3/Singleton

提供: 初心者エンジニアの簡易メモ
移動: 案内検索


Singletonパターン(グローバル値をクラスに設定

package {
  // ex)var ex:Singleton = Singleton.getInstance();
  public class Singleton {
    private static var instance:Singleton;
    public static function getInstance():Singleton {
      if (instance == null) {
        instance = new Singleton(arguments.callee);
      }
      return instance;
    }
    public function Singleton(caller:Function = null) {
      if (caller != Singleton.getInstance) {
        throw new Error("SingletonクラスはSingletonクラスです。getInstance()メソッドを使ってインスタンス化してください。");
      }
      if (Singleton.instance != null) {
        throw new Error("Singletonインスタンスはひとつしか生成できません。");
      }
      init();
    }
    private function init():void {
      // ここからいろいろ書く
    }
  }
}