[디자인 패턴] 싱글톤(Singleton)

y30n9ju1v·2021년 9월 22일
0

프로그래밍

목록 보기
11/18

정의

싱글톤은 클래스에 인스턴스가 하나만 있어야 하고 동시에 이 인스턴스에 대한 전역 액세스를 제공하는 생성 디자인 패턴입니다.

UML

장단점

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

참고

0개의 댓글