[Effective-Java] Chapter12 #89. 인스턴스 수를 통제해야 한다면 readResolve보다는 열거 타입을 사용하라
·
Reference/Effective-Java
📌 Singleton 패턴과 직렬화 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } public void leavingTheBuilding() {...} } 위 클래스는 외부 생성자 호출을 막음으로써, 인스턴스가 오직 하나만 만들어짐을 보장하는 싱글턴 패턴이다. 하지만 `implements Serializable`을 추가하는 순간 더 이상 싱글턴이 아니게 된다. 기본 직렬화(Item 87)을 쓰지 않고, 명시적인 readObject(Item 88)을 사용해도 소용없다. writeObject()를 제공하더라도 소용이 없다. 🤔 과연 그럴까? public class Main { publi..