Javaで前回の結果に基づいて、メソッドの連鎖を実行するためのパターンがありますか?

CMN:

ユースケースは、以前のものが返されたか否かに基づいて実行される必要があるメソッドのセットがあるtrueかどうかは。例えば:

class Test {
    boolean method1() {...}
    boolean method2() {...}
    boolean method3() {...}

    ...

    void callAll() {
        if(method1()) {
             if(method2() {
                 if(method3() {
                     ...
                 }
             }
        } else {
            error();
        }
    }
}

なければならないelseすべてのためifの。このシナリオを処理する良い方法はありますか?

ミック・ニーモニック:

私はちょうどこのようにそれを行うだろう。

void callAll(){
    if(method1() && method2() && method3()){
        // all passed
    } else {
        error();    
    }
}

Javaの短絡&&論理演算ここで、従来の方法では、障害ので、次のいずれかを実行して防ぐことができます。

した場合error()、あなたが失敗したメソッドのかを知る必要がある、あなたは、クラス内の情報を格納するためのエラーメッセージフィールドを宣言し、故障に対応するその値を設定できます。

private String errorMessage;

//...

boolean method2() {

    // something went wrong
    errorMessage = "Failed to do method2 stuff";
}

使用するのだろう同じことを達成するために、よりエレガントな方法です責任のデザインパターンのチェーンを、独自のハンドラオブジェクトのbooleanメソッドをカプセル化します。これを行うことがより多くのあなたが現在持っているコードと、特定のユースケースの詳細にリファクタリングが必要となります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=196073&siteId=1