私はJavaで小さな問題を抱えています。Modifiable というインターフェイスがあります。このインターフェースを実装するオブジェクトは変更可能です。
また、2 つの Modifiable オブジェクトを受け取る ModifyCommand クラス (Command パターンを使用) もあります (リスト内でそれらをさらに交換する - それは私の質問ではありません。私はすでにそのソリューションを設計しています)。
ModifyCommand クラスは、Modifiable オブジェクトのクローンを作成することから始めます。論理的には、Modifiable インターフェイスが Cloneable を拡張するようにしました。次に、インターフェースは、その実装クラスが再定義する必要がある clone() メソッドを定義します。
次に、ModifyCommand で、firstModifiableObject.clone() を実行できます。私の論理では、Modifiable を実装するクラスは、Cloneable になるため、Object から clone メソッドを再定義する必要があります (それが私がやりたいことです)。
問題は、Modifiable を実装するクラスを定義し、clone() をオーバーライドしたい場合、Object クラスの clone() メソッドが Modifiable のメソッドを非表示にしていると言って、それができないということです。
私は何をすべきか?「やり方が間違っている」と思い込んでいる…
ありがとう、
ギヨーム。
編集: clone() のことを忘れると思います。a) Modifiable オブジェクト (インターフェースを実装する) に渡されたオブジェクトが既に複製されていると仮定するか、b) 基本的に Modifiable オブジェクトのディープコピーを行う copy() などと呼ばれる別のメソッドを作成します (または、一般的なソリューションが機能する可能性があります...)。