단일체 디자인패턴
- 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공한다.
클래스 설명
AS3.0 에서 사용하는 가장효율적인 싱글턴패턴의 구조입니다. AS3.0에서는 new 연산자를 이용해서 인스턴트를 만들 때 생성자의 실행을 막을 방법이 존재하지 않습니다. 2.0에서는 접근제한자를 private로 선언해서 접근을 막을 수 있었지만 3.0에서는 생성자 함수에 private 키워드를 사용할 수 없습니다.그래서 컴파일타임 시 클래스 내부 static변수에 인스턴트를 할당하고 getInstance() 정적메소드를 이용해서 인스턴트를 반환 받으므로써 싱클턴클래스의 유일성을 보장받을 수 있습니다.
클래스 사용예제
var singleton: Singleton = new Singleton(); //일반적인 인스턴트 생성을 막기위함.
var singleton: Singleton = Singleton.getInstance(); //우리가 의도한 싱클턴패턴 사용방법.
singleton.doSomething(); //출력 "hi~ I am doSomething()"
클래스 구성
package
{
private static var _instance: Singleton = new Singleton(); //컴파일타임 시 클래스 내부 인스턴트 할당.
public function Singleton()
{
if(_instance){
throw new Error("Not make Instance");
}
}
public static function getInstance(): Singleton
{
return Singleton._instance;
}
public function doSomething(): void
{
trace("hi~ I am doSomething()");
}
}
'디자인 패턴' 카테고리의 다른 글
디자인패턴 : MVC (0) | 2011.08.03 |
---|---|
디자인패턴 : Observer (0) | 2011.08.03 |
디자인패턴 : Command (0) | 2011.08.03 |
디자인패턴 : Composite (0) | 2011.08.03 |
디자인패턴 : Iterator (0) | 2011.08.03 |