シングルトンのルール
・(シングルトンインスタンスは)プライベートなstaticなプロパティに保持
・(シングルトンインスタンスに)アクセスするにはパブリックなメソッドを使う。(インスタンスが無い場合は生成)

汎用的なシングルトンパターン

package  {
	public class Singleton {
		
		//Singletonインスタンスを保持
		static private var _instance:Settings;
		
		//他のオブジェクトからnew Singleton()では作らせないようにする
		public function Singleton(enforcer:SingletonEnforcer) {
		}
		
		//インスタンス作成はこのメソッドで
		public function getInstance():Settings {
			//一回目はインスタンスを作る
			if (Settings._instance == null){
				Settings._instance = new Settings(new SingletonEnforcer));
				
			}
			//保持しているインスタンスを返す
			return Settings._instance;
		}
	}
}
//new Singletonさせないためのクラス
class SingletonEnforcer{}