複数版 Singleton パターン

リファクタリングを再読していて発見。P.179 に Singleton の複数版パターンがあった。抽象化すると単なる Hash なのだが、何かと使えそう。

以下、簡単なコード。

package {
import flash.utils.Dictionary;
public class Hoge {
private var name:String;
private static var instances:Dictionary;
public function Hoge(name:String) {
this.name = name;
}
public static function getInstance(name:String):Hoge {
if (instances == null) {
instances = new Dictionary();
}
if (instances[name] == undefined) {
instances[name] = new Hoge(name);
}
return instances[name];
}
}
}