싱글턴 패턴
어떤 Class의 Instance를 단 하나만 생성할 수 있다면, 그것을 Singleton Class이라고 하고, 이 디자인 패턴을 Singleton Pattern이라고 한다.
어디에 사용되는가?
- Class에 시스템에 한번만 저장되어야하는 데이터가 포함되는 경우
어떻게 구현하는가?
- 생성자는 'new'를 통해 생성할 수 없게 하기 위해서 private으로 선언되어야한다.
- 객체가 생성될 때 스레드 안전성을 보장하는지 확인해야한다.
- 지연 로딩을 지원하는지 여부를 확인해야한다.
- getInstance() 함수의 성능이 충분해야한다.
단점
- Class간의 의존성을 감춘다.
- 클래스 간의 의존성을 활실히 드러나는 것이 좋다.
- 하지만 싱글턴 패턴은 명시적으로 생성할 필요가 없고, 매개변수 전달에 의존할 필요가 없으며, 함수에서 직접 호출할 수 있기에 의존성이 드러나지 않는다.
- 의존성 주입을 통해 부분적 해결이 가능하다.
- 코드의 확장성에 영향을 미친다.
- 하나의 instance만 생성할 수 있기에, 두 개 이상의 인스턴스가 필요한 경우, 코드를 전면적으로 수정해야할 수 있다.