「納得したい」単一のインスタンス
久しぶりの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として定義する以外の何か深い闇が潜んでいるに違いない。