-1

フィールドとメソッドを持つJavaクラス ClassA があります

boolean isAvail;
String field1;

public String setField1(String field1) {
    this.field1 = field1;
}

public boolean isAvail() {
    return isAvail;
}

ただし、ビジネス要件に従って、メソッドを次のように実装する必要があります

public String setField1(String bCode) {
    if (isAvail) {
        field1 = bcode;
    }
    else {
        field1 = "XYZ";
    }
}

このクラスは他のクラスで使用され、以前のメソッドが必要になる可能性があるため、以前の setField1 を保持したいと思います。

同じメソッド署名を持つことは現実的ではないことはわかっていますが、効率的な方法でこれを解決する方法について洞察を提供できる人はいますか?

4

1 に答える 1

4

現在のクラスを拡張するカスタム サブクラスを作成し、setField1 メソッドをオーバーライドできます。

public class SubClass extends CurrentClass {

    @Override
    public String setField1(String bCode) {
        if (isAvail()) {
            return super.setField1(bCode);
        } else {
            return super.setField1("XYZ");
        }
    }

}

新しい要件には SubClass を使用し、古いクラスは以前のように CurrentClass を使用できるようにします。

于 2013-10-08T13:54:06.373 に答える