Синглтонные реализации AS3
Я видел так много реализаций синглетонов вокруг, и я просто хочу синглтон, который
1.- экземпляры по первому вызову 2.- экземпляры только один раз (дух)
Так что по производительности и низкому потреблению памяти, что является лучшей реализацией для этого?
Пример 1
package Singletons
{
public class someClass
{
private static var _instance:someClass;
public function AlertIcons(e:Blocker):void{}
public static function get instance():someClass{
test!=null || (test=new someClass(new Blocker()));
return _instance;
}
}
}
class Blocker{}
Example2
public final class Singleton
{
private static var _instance:Singleton = new Singleton();
public function Singleton()
{
if (_instance != null)
{
throw new Error("Singleton can only be accessed through Singleton.instance");
}
}
public static function get instance():Singleton
{
return _instance;
}
}
Пример 3
package {
public class SingletonDemo {
private static var instance:SingletonDemo;
private static var allowInstantiation:Boolean;
public static function getInstance():SingletonDemo {
if (instance == null) {
allowInstantiation = true;
instance = new SingletonDemo();
allowInstantiation = false;
}
return instance;
}
public function SingletonDemo():void {
if (!allowInstantiation) {
throw new Error("Error: Instantiation failed: Use SingletonDemo.getInstance() instead of new.");
}
}
}
}