싱글톤이란?
싱글톤 클래스에는 단일 핸들을 통해 전역적으로 액세스할 수 있는 인스턴스가 하나만 있습니다.
(메서드/필드를 통해)
Singleton 클래스에는 단일 지점에서 전역적으로 액세스할 수 있는 인스턴스가 있습니다.
* 메소드나 필드에 대한 포인트 ==>
이 패턴이 해결하는 주요 문제는 이 클래스의 인스턴스가 하나만 있는지 확인하는 것입니다.
이 패턴의 주요 문제는 이 클래스의 인스턴스가 하나만 있는지 확인하는 것입니다.
싱글톤에 추가하는 모든 상태는 애플리케이션의 “글로벌 상태”의 일부가 됩니다.
Singleton 클래스의 인스턴스 상태는 전역적으로 공유됩니다.
싱글톤 구현
인스턴스 생성 제어
클래스 생성자는 전역적으로 액세스할 수 없어야 합니다.
클래스 생성자는 전역적으로 액세스할 수 없어야 합니다.
서브클래싱/상속이 허용되지 않아야 합니다.
하위 클래스는 인스턴스화할 수 없습니다.
인스턴스를 주시하십시오
클래스 자체는 추적하기에 좋은 장소입니다. 그만큼 예.
인스턴스 추적에 적합합니다.
싱글톤 인스턴스에 대한 액세스 권한 부여
공용 정적 메서드는 좋은 선택입니다.
Singleton 인스턴스에 액세스할 때 공용 정적 메서드를 사용하는 것이 좋습니다.
인스턴스를 마지막 공개 정적 필드로 노출할 수 있지만 모든 싱글톤 구현에서는 작동하지 않습니다.
최종 공개 정적 필드를 사용하여 인스턴스를 노출할 수 있지만 모든 싱글톤 구현에 해당되는 것은 아닙니다.
싱글톤 구현을 위한 두 가지 옵션
초기 초기화 – 열정의 싱글톤
클래스가 로드되면 싱글톤을 생성합니다.
클래스가 로드되면 인스턴스가 생성됩니다.
지연 초기화 – 게으른 싱글톤
Singleton은 처음 필요할 때 생성됩니다.
첫 번째 인스턴스 생성 요청 시 인스턴스가 생성됩니다.
