Singleton パターン

Singleton.as

package {
	
	public class Singleton {
		
		// インスタンスを保持。
		private static var _instance:Singleton=null;
		
		// コンストラクタ。
		public function Singleton(enforcer:SingletonEnforcer) { }
		
		// 静的プロパティからインスタンスを取得します。
		public static function get instance():Singleton {
			if(Singleton._instance == null) { Singleton._instance= new Singleton(new SingletonEnforcer()); }
			
			return Singleton._instance;
		}
		
		// インスタンスメソッド
		public function doSomething():void { }
	}
}

// このファイル内でのみ利用可能なクラス。
internal class SingletonEnforcer { }

*1 *2


*1:Patterson, Danny「Chapter 4 シングルトンパターン」『ActionScript 3.0: デザインパターン』 2009 年 翔泳社 isbn:9784798118369 pp73-85

*2:Moock, Colin「16 章 スコープ」『詳説 ActionScript 3.0』2008 年 オライリージャパン isbn:9784873113876 pp323-331