TIL

아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라

싱글턴이란

싱글턴을 만드는 방법

private 기본 생성자와 static 멤버

public class Elvis {
    public static final Elvis INSTANCE = new Elvis();

    private Elvis() {}
}

정적 팩터리 메서드로 public static 멤버 제공하기

public class Elvis {
    public static final Elvis INSTANCE = new Elvis();

    private Elvis() {}

    public static Elvis getInstance() { return INSTANCE; }
}

직렬화 문제

열거 타입 싱글턴

public enum Elvis {
    INSTANCE;
}