Implement the Singleton In AS3
Implement the Singleton In AS3
The following example implement the Singleton In AS3 at the run-time.I don’t know if there is some other way to implement the Singleton in Compile-time.
From http://www.tink.ws/blog/stricter-singletons/
Strict Singletons in AS 3.0
With As 3.0 conforming to ECMA there you can no longer have private constructors which makes creating strict singletons a little bit more tricky. If I write a singleton, I want it written in a way that only a single instance can be created and if someone makes a mistake and tries to create an instance without using getInstance() an error will be thrown. This is a little workaround me and Rich came up with.
package
{
public class Singleton
{
private static var instance:Singleton;
private static var creatingSingleton:Boolean = false;
public function Singleton()
{
if( !creatingSingleton ) throw new Error( “Singleton and can only be accessed through Singleton.getInstance()” );
}
public static function getInstance():Singleton
{
if( !instance )
{
creatingSingleton = true;
instance = new Singleton();
creatingSingleton = false;
}
return instance;
}
}
}
浙公网安备 33010602011771号