-
3. 생성자나 열거 타입으로 싱글턴임을 보증하라.백기선(인프런 강의)/이펙티브자바 2023. 7. 2. 15:58반응형
private 생성자 + public static final 필드
장점
- 간결하고 싱글턴임을 API에 들어낼 수 있다.
단점
- 싱글톤을 사용하는 클라이언트 테스트하기 어려워진다.
- 리플렉션으로 private 생성자를 호출할 수 있다. 단점 3, 역직렬화 할 때 새로운 인스턴스가 생길 수 있다.
private 생성자 + 정적 팩터리 메서드
장점
- API를 바꾸지 않고도 싱글턴이 아니게 변경할 수 있다.
- 정적 팩터리를 제네릭 싱글턴 팩터리로 만들 수 있다.
- 정적 팩터리의 메서드 참조를 공급자(Supplier)로 사용할 수 있다.
열거 타입가장 간결한 방법이며 직렬화와 리플렉션에도 안전하다.
대부분의 상황에서는 원소가 하나뿐인 열거 타입이 싱글턴을 만드는 가장 좋은 방법이다.반응형'백기선(인프런 강의) > 이펙티브자바' 카테고리의 다른 글
4. 인스턴스화를 막으려거든 private 생성자를 사용하라 (0) 2023.07.03 2. 생성자에 매개변수가 많다면 빌더를 고려하라 (0) 2023.06.28 1. 생성자 대신 정적 팩터리 메서드를 고려하라. (0) 2023.06.27