싱글턴1 [Effective Java 3/E] 아이템3. private 생성자나 열거 타입으로 싱글턴임을 보증하라 싱글턴이란? 싱글턴(Singleton) 이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트를 테스트하기 어려워질 수 있다. 인터페이스를 구현한 싱글턴이 아니라면 Mock 구현으로 대체할 수 없기 때문에 싱글턴 생성 방식 1. public static final 필드 private 생성자는 public static final 필드인 Elvis.INSTANCE를 초기화할 때 딱 한번 호출 예외 : 권한이 있는 클라이언트는 리플렉션 API인 AccessibleObject.setAccessible을 사용해 private 생성자를 호출할 수 있다. 생성자에서 두번째 객체가 생성되려 할 때 예외를 던지게 하면 이러한 공격을 방어할 수 있다. public.. 2021. 5. 24. 이전 1 다음