본문 바로가기

prev record

[2010.05.12.수요일] 싱글톤

말그대로 하나로만 사용되는 것이다.  개발하다 보면 반복적으로 사용되거나 어플리케이션 전역적으로 사용되는데 아주 유용한 것이다. 특히 인스턴스를 직접 생성할 필요가 없는 이점을 가지고 있다. 이 클래스 자체가 인스턴스라고 봐도 무방할 것 같다.   
if
(_instance != null)    throw new Error("This class is a singleton class");

이 코드는 싱글톤 생성자 함수에서 빠지지 않는 구문이다.  이 구문은 인스턴스가 있으면 에러 처리 시키는 구문이다. 이 한 줄이 싱글톤을 다 보여 주는 것 같기도 하다. 싱글톤은 이름 그대로 오직 하나의 인스턴스만 가지게 된다. 그리고 시퀀시 상으로 한번에 하나의 일만을 처리하게 된다. 동시에 두 가지 일을 할 수 없는 것이다.


public static function getInstance() : InsertUpdateDelProxy  {
        if (_instance == null )_instance = new InsertUpdateDelProxy()  
           return _instance as InsertUpdateDelProxy               
}


위 메서드를 보면 인스턴스를 직접 생성할 필요가 없는 이유를 알수가 있다.

InsertUpdateDelProxy.getInstance()           <---    이것이 바로 인스턴스가 되는 것이다.


이 클래스 내에 메스드가 있다면... 예를 들어 onMethod() 가 안에 있다고 치자. 이 메서드는 

InsertUpdateDelProxy.getInstance().onMethod() 

이렇게 쓸 수 가 있다. 그리고 개발되고 있는 클래스들 어디에서든 쉽게 불러 쓸수 가 있다. 참으로 유용해 보인다.