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

久しぶりの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として定義する以外の何か深い闇が潜んでいるに違いない。