Effective Java

이펙티브 자바 완벽 공략 1부

아이템 13 - clone 재정의는 주의해서 진행하라.

clone 규약

가변 객체의 clone 구현하는 방법

clone 대안

정리

Cloneable은 문제가 많다. 그래서 새로운 인터페이스를 만들 때는 절대 Cloneable을 확장해서는 안되며, 새로운 클래스도 이를 구현해서는 안된다.
final 클래스라면 Cloneable을 구현해도 위험이 크지 않지만, 성능 최적화 관점에서 검토한 후 별다른 문제가 없을 때만 드물게 허용해야 한다.
기본 원칙은 ‘복제 기능’은 생성자와 팩터리를 이용하는게 최고다. 단, 배열만은 clone 메서드 방식이 가장 깔끔한, 이 규칙의 합당한 예외이다.

출처

이펙티브 자바 3/E
이펙티브 자바 완벽 공략 1