私は2つの類似したクラスオブジェクトを持っています。私は第2クラスのオブジェクトのために再利用したいファーストクラスのオブジェクトのためにいくつかのメソッドを持っていますが、私はどのようにして複製メソッドを記述したくないのか分かりません。再利用の検証方法。オブジェクトを変換する
私はどのように考えているかを示す例を抽出して簡略化しました。
ファーストクラス
public class FirstClass {
int number;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
...
}
セカンドクラス
public class SecondClass {
int number;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
...
}
サードクラス
public class Main {
public static void main(String[] args) {
FirstClass firstClass = new FirstClass();
firstClass.setNumber(5);
SecondClass secondClass = new SecondClass();
secondClass.setNumber(5);
numberIsFive(firstClass);
numberIsFive(secondClass);
}
public void numberIsFive(Object myObject){
if(myObject instanceof FirstClass){
myObject = (FirstClass)myObject;
}else if(myObject instanceof SecondClass){
myObject = (SecondClass)myObject;
}
if(myObject.getNumber() == 5){
System.out.println("is five");
}else{
System.out.println("is not five");
}
...
}
}
なしnumberIsIFive(firsclass.getNumberは())私が使用方法以来のオプションではありませんはるかに多くのバリデーションがあります。
interface IntValueHolder {
int getNumber();
void setNumber(int value);
}
class IntValueHolderImpl implements IntValueHolder { ...
そしてドロップ」だろう:「オーバーエンジニアリング」かもしれませんが、一般的にはあなたのような、ここに構図の方になります。このケースでは、事前
継承の使用はどうですか? – dcalap
私はその考えに私の答えを更新しました。 – GhostCat
すべての回答は本当にありがとうございます。私はこれを使用して解決策に最も近いものだったので、これを厳しく受け入れました。 – Benny