書き物

技術とか作った物の話とか愚痴文句感想など

「納得したい」単一のインスタンス

久しぶりのAS話です。


FlashMX2004ヘルプ「クラスメンバーの作成」から。

class Singleton {
private var instance:Singleton = null;
public function doSomething():Void {
//...
}
public static function getInstance():Singleton {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}

今までの知識では??だったので、

こじつけるかのように自身を納得させてみようと思います。

実際にまだ実験していないので、何とも言えないと言えば言えない状況ではあります。

staticなgetInstance()がinstanceにアクセスできることが初耳。

instanceはSingleton型だからか?

これでクラス(静的)メンバということでアクセスできるのかもしれません。

つまり、実際は違うけどinstanceはstaticな状態と似たようなもの...ということか?

インスタンスを作らないで、Singleton.getInstance()を実行しても、

staticじゃないinstanceの内容が保持され続けるのか?

というのが最大の疑問だったのですが、

instanceはクラスメンバであると考えれば「納得」。


正直まだゴチャゴチャしてイマイチ理解できていない気がします。

この話、staticとして定義する以外の何か深い闇が潜んでいるに違いない。