Java에서 약간의 문제가 있습니다. Modifiable이라는 인터페이스가 있습니다. 이 인터페이스를 구현하는 객체는 수정 가능합니다.Java의 필수 복제 가능 인터페이스
두 개의 수정 가능한 객체를받는 ModifyCommand 클래스 (명령 패턴 포함)도 있습니다.이 객체는 목록에서 더 바꿔 넣을 수 있습니다 - 내 질문이 아니기 때문에 이미 그 솔루션을 설계했습니다.)
ModifyCommand 클래스는 Modifiable 객체의 복제본을 만들어 시작합니다. 논리적으로, 나는 Modifiable 인터페이스가 Cloneable을 확장하도록 만들었다. 그런 다음 인터페이스는 구현 클래스가 다시 정의해야하는 clone() 메서드를 정의합니다.
그런 다음 ModifyCommand에서 firstModifiableObject.clone()을 수행 할 수 있습니다. 내 논리는 Modifiable을 구현하는 클래스는 Cloneable이 될 것이므로 Object에서 복제 메서드를 다시 정의해야한다는 것입니다.
클래스가 Modifiable을 정의한다고 정의하고 clone()을 재정의하려면 Object 클래스의 clone() 메서드가 Modifiable의 메서드를 숨 깁니다.
어떻게해야합니까? 나는 ...
감사합니다,
기욤를 "내가 잘못하고 있어요"라는 인상입니다.
편집 : 내가 clone() 일을 잊어 버리 리라 생각합니다. 나는 a) Modifiable 객체 (인터페이스 구현)에 전달 된 객체가 이미 복제되었거나 b) copy()와 같은 다른 메소드를 작성한다고 가정합니다.이 메소드는 기본적으로 Modifiable 객체의 deep 복사를 수행합니다. 또는 일반 솔루션이 작동 할 수도 있습니다 ...).
당신 말이 맞아요을 구현합니다. 좋은 작은 트릭! 그리고 의심 스럽지만 Java 5에서는 정상적으로 작동합니다. –