Синглтонные реализации 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.");
            }
        }
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос