Effective Java - Item 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라
private의 생성자 또는 enum 형으로 싱글 톤 특성을 강제한다.
Java 1.5(Tiger)에서는 하나의 요소만을 가지는 enum 형을 제공하는 것으로 싱글 톤을 작성할 수가 있다.
public enum MySingleton {
INSTANCE;
public void greet() { ... }
}
private static
한 필드를 이용하여, 싱글 톤 클래스를 만드는 방법에 비해 다음과 같은 이점이 있다.
- 시리얼라이즈의 기능을 갖춘다.
implementes Serializable
하지 않아도 된다.
- 직렬화 공격에 내성을 가진다.
readResolve
메소드를 구현하지 않아도 된다.
- 리플렉션 공격에 내성을 가진다.
최종 수정 : 2023-05-06