Serializable상속을 위한 클래스(예: 추상 클래스)를 설계할 때 인터페이스를 구현하지 않고 각 하위 클래스에서 직렬화해야 하는지 여부를 개별적으로 결정하는 것이 좋습니다 . 그러나 직렬화 메커니즘이 개체를 올바르게 생성하려면 이러한 클래스에 기본 생성자가 있어야 합니다. 그리고 때로는 클래스의 무결성을 손상시키지 않고 기본 생성자를 제공할 수 있는 방법이 없습니다. 이러한 클래스는 일반적으로 정상적으로 작동할 수 없는 일부 개체를 매개 변수로 사용해야 하며 기본 생성자를 제공하면 클래스의 무결성을 위반하게 됩니다. 이러한 상황에서는 생성자를 제공할 수 있지만 완전히 초기화될 때까지 생성자 작업을 금지할 수 있습니다. 이를 위해 클래스에 상태를 도입하고 이 클래스의 상태가 "초기화"된 경우에만 해당 메서드가 호출되도록 허용할 수 있습니다. "Effective Java" 책의 예 :
GO TO FULL VERSION