싱글턴 패턴

1 개요[ | ]

singleton pattern
싱글턴 패턴, 싱글톤 패턴, 싱글턴, 싱글톤[1]
  • 인스턴스를 1개만 만들 수 있는 패턴
  • 어떤 클래스의 인스턴스를 하나만 만들 수 있는 패턴
  • 인스턴스에 접근할 수 있는 전역 접촉점을 제공하는 패턴
  • 인스턴스 생성(new)을 외부에서 직접 할 수 없게 하고 내부에서만 하는 구조로 하여 인스턴스 개수를 1개로 통제함
  • 인스턴스가 여러 개 있을 필요가 없는 경우에 적용한다.
  • 예: 배경음악 플레이어, 윈도우 관리자, 프린터 스풀러, 쓰레드풀 관리자, DB 커넥션 풀 관리자, 캐시, 로거, 팩토리
  • (옵션) 생성자를 private으로 선언하면 상속 불가[2]

 

2 예제 (기본형)[ | ]

public class Singleton {
    private static final Singleton instance = new Singleton();
    private Singleton() {}
    public static Singleton getInstance() {
        return instance;
    }
}

인스턴스를 사용라면 다음과 같이 호출.

Singleton singleton = Singleton.getInstance();

3 예제 2[ | ]

public class Singleton {
        private static Singleton instance = null;
        private Singleton() {}
        public static Singleton getInstance() {
                if (instance == null) {
                        synchronized (Singleton.class) {
                                if (instance == null) instance = new Singleton();
                        }
                }
                return instance;
        }
}

4 같이 보기[ | ]

5 참고[ | ]

  1. 통용표기 싱글턴(122,000), 싱글톤(77,700)
  2. 상속을 할 수 있게 하려면 public으로 해주면 된다.
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}