본문 바로가기
Language/Java

[JAVA ]싱글톤(Singleton)이란/사용이유/구현방법

by 나비와꽃기린 2016. 7. 5.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

싱글톤(Singleton) 인스턴스

 

1. 싱글톤이란?

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

(어플리케이션 전체 영역에서 하나의 클래스의 단 하나의 인스턴스를 생성하는 것!)

환경설정 관리 클래스나, 커넥션 풀과 같이 pool 형태로 관리되는 클래스로 주로 공통 클래스에

사용되는 것이 일반적이다.

 

2. 그렇다면 why() 사용할까 ??????????

예를들어 사용자 정보를 처음에만 로딩해주는 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()를 호출해야만 한다.