정의
싱글톤은 클래스에 인스턴스가 하나만 있어야 하고 동시에 이 인스턴스에 대한 전역 액세스를 제공하는 생성 디자인 패턴입니다.
UML
장단점
- 장점
- 클래스에 인스턴스가 하나만 있는지 확인할 수 있습니다.
- 해당 인스턴스에 대한 전역 액세스 포인트를 얻습니다.
- 싱글톤 객체는 처음 요청될 때만 초기화됩니다.
- 단점
- 단일 책임 원칙을 위반합니다.
이 패턴은 당시 두 가지 문제를 해결합니다.
- 싱글톤 패턴은 예를 들어 프로그램의 구성 요소가 서로에 대해 너무 많이 알고 있는 경우 잘못된 디자인을 가릴 수 있습니다.
- 패턴은 다중 스레드 환경에서 특별한 처리가 필요하므로 다중 스레드가 싱글톤 객체를 여러 번 생성하지 않습니다.
- 많은 테스트 프레임워크가 모의 객체를 생성할 때 상속에 의존하기 때문에 싱글톤의 클라이언트 코드를 단위 테스트하기 어려울 수 있습니다.
싱글톤 클래스의 생성자는 비공개이고 대부분의 언어에서 정적 메서드를 재정의하는 것이 불가능하기 때문에 싱글톤 모조품을 생성하는 창의적인 방법을 생각해야 합니다.
아니면 그냥 테스트를 작성하지 마십시오.
또는 Singleton 패턴을 사용하지 마십시오.
참고