Class Flash ActionScript

package {
  public class Singleton {
    private static var instance:Singleton;
    private static var allowInstance:Boolean;
    public function Singleton() {
      if(!allowInstance) { 
        throw new Error("Error: use Singleton.getInstance() instead of new keyword");
      }
    }
    public static function getInstance():Singleton {
       if(instance == null) {
         allowInstance = true;
         instance = new Singleton();
         trace("Singleton instance created");
         allowInstance = false;
       } else { 
         trace("Singleton instance already exists");
       }
       return instance;
    }
    public function doSomething():void {
      trace("doing something");
    }
  }
}