: 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴.
*클래스: 붕어빵 틀, 인스턴스: 붕어빵(실체)
- 즉 인스턴스 생성 개수 제한(1개의 인스턴스)
- 지정한 클래스의 인스턴스가 반드시 1개만 존재한다는 것을 보장하고 싶을 때
- 인스턴스가 하나만 존재한다는 것을 프로그램 상에서 표현하고 싶을 때
ex) 컴퓨터 시스템 전체를 표현한 클래스, 현재 시스템 설정을 표현한 클래스, 각종 상수 등
보통 DB연결 모듈에 많이 사용.
- 장점: 인스턴스를 공유하면서 사용하기 때문에 인스턴스를 생성할 때 드는 비용↓
- 단점: 의존성 ↑, 단위테스트 어려움(독립적인 인스턴스를 만들기 어려우니)
✅ 구현
- Singleton을 private static 변수로 선언
- 생성자도 마찬가지로 private. 해당 클래스 외부에서는 생성 못하도록
- getInstance public static 메서드 제공 -> 싱글톤 클래스의 유일한 인스턴스를 얻는 메서드 *static factory method의 일종
✅ enum을 이용한 Singleton
- enum의 요소는 상수로서 인스턴스의 유일성 보증