린아저씨의 잡학사전

싱글톤(Singleton) 인스턴스

 


1. 싱글톤이란?

 

싱글톤 패턴은 하나의 프로그램 내에서 하나의 인스턴스만을 사용해야하는 상황에 주로 사용한다

(어플리케이션 전체 영역에서 하나의 클래스의 단 하나의 인스턴스를 생성하는 것)
환경설정 관리 클래스나, 커넥션 풀과 같이 pool 형태로 관리되는 클래스로 주로 공통 클래스에 사용되는 것이 일반적이다.

 

2. 그렇다면 왜 사용할까?

 

예를 들어 사용자 정보를 처음에만 로딩해주는 UserManager가 있다고 치면

매번 인스턴스를 생성하는 것은 자원 낭비 또는 인스턴스가 꼬이는 일이 생길 수도 있다.

 

3. 싱글톤 구현

 

싱글톤 구현에서 주의 깊게 보아야 될 부분은 생성자를 Private로 생성하여

다른 외부 클래스에서 싱글톤 클래스를 new로 구성하지 못하게 하는 부분이다.


/*

* 싱글톤 인스턴스

*/

private static userManager INSTANCE = null;

/*

* 생성자를 private으로 선언하여 new 키워드 못 쓰게 함.

*/ 


private UserManager(){

    Logger.debug("UserManager Initialized");

}


/*

* 싱글톤 인스턴스를 반환한다.

* @return popupManager

*/


public static UserManager getInstance() throws Exception{

    if ( INSTANCE == null ){

        INSTANCE = new UserManager();

    }

    return INSTANCE;

}


싱글톤 클래스의 인스턴스를 타 클래스에서 사용하기 위해서는 getInstance()를 호출해야만 한다.



출처 : http://mkil.tistory.com/199

공유하기

facebook twitter kakaoTalk kakaostory naver band