Cloneable은 어떤 객체가 복제(clone)을 허용한다는 사실을 알리는데 쓰려고 고안된 인터페이스다.
1. clone된 객체와 기존 객체는 같이 말아야 한다.
2. clone의 class 명과 기존 객체의 class 명은 동일해야 한다.
3. clone한 객체의 값과 기존 객체의 값이 같을 수도 있지만 별도의 조작을 한 경우 다를 수 있다.
비 final class의 clone 재정의시 super.clone을 호출해 얻은 객체를 반드시 반환해야 한다.
Clonable을 상속받은 class는 제대로 동작하는 public class를 보유하고 있어야 한다.
클라이언트에는 최소환의 로직만 노출 시켜야 한다.(로직은 라이브러리 내부에서 수행되게 한다.)
객체 복사를 지원하는 가장 좋은 방법은 복사 생성자나 복사 팩토리를 하나 제공하는 것이다.
'More Programmings > Effective Java' 카테고리의 다른 글
규칙 13. 클래스와 멤버의 접근 권한은 최소화하라 (0) | 2017.12.27 |
---|---|
규칙 12. Comparable 구현을 고려하라 (0) | 2017.12.27 |
규칙 10. toString은 항상 재정의하라. (0) | 2017.12.19 |
규칙 9. equals를 재정의할 때는 반드시 hashCode도 재정의하라. (0) | 2017.12.19 |
규칙 8. equals를 재정의할 때는 일반 규약을 따르라 (0) | 2017.12.19 |