2

別のメソッドのパラメーター リストからメソッドを呼び出すことは良い習慣ですか?

public String processRequestBasedOnCondition(MyObject obj) {
   return executeRequest(frameRequestObject(obj));
}

public String executeRequest(RequestObject rqObject){
   return rqObject.execute();
}
  1. の戻り値をframeRequestObject(obj)変数に保持し、引数として渡すことはできexecuteRequest()?ますか? この場合のベスト プラクティスはどれですか?
  2. "return" のように値を返すのは良い習慣rqObject.execute();ですか?
4

6 に答える 6

1
  1. はい、できます

    public String processRequestBasedOnCondition(MyObject obj) {
        RequestObject requestObject = frameRequestObject(obj);
        return executeRequest(requestObject);
    }
    
  2. 練習より好み。

呼び出しを変数に割り当てる方が読みやすいと主張する人もいます。個人的にはreturn rqObject.execute()、そのままで十分に読みやすいので、単純にそうします。

于 2012-07-11T07:03:35.187 に答える
0

それは事実上機能的なスタイルです(これは問題ありません)。

于 2012-07-11T07:04:01.923 に答える
0
  1. コードが読み取り可能である限り、問題はありません。1行のコードで200文字の長さの10個のメソッド呼び出しが発生した場合、それはもはや受け入れられません。
  2. はい。呼び出しの結果をローカル変数に格納してローカル変数を返すことは、実際の目的には役立ちません。デバッグには役立ちますが、結果を直接返すことは問題ありません。デバッグに追加の変数が必要な場合でも、現時点で追加できます。
于 2012-07-11T07:05:22.597 に答える
0

率直に言って、どちらも練習よりも好みに関するものです。

1.

RequestObject reqObj = frameRequestObject(obj);
   return executeRequest(reqObj);

2. この return rqObject.execute() のような初心者にとっては、混乱を招く可能性があります。それでも、それを行うにはよりクリーンな方法です...私はこれを好みます。

于 2012-07-11T07:24:06.963 に答える
0

Can I hold the return value of frameRequestObject(obj) in a variable and pass it as argument to the executeRequest()? Which is the best practice in this case?

はい、できますが、読みやすくするために、まずメソッドの出力をキャプチャしてから、他のメソッドに渡します。

is it a good practice to return the value like "return rqObject.execute()

ここでもコードの可読性が向上しますが、それは可能です。

于 2012-07-11T07:01:16.883 に答える
0

この場合はそのままでいいと思います。

読みやすいコードをプログラミングすることは重要です。この場合、 のようなものを使用してreturn executeRequest(frameRequestObject(obj));も、かなり読みやすいです。

次のようなものがあると、物事が乱雑になり始めます。 return executeRequest(foo.getBar().getValue().frameRequestObject(obj));

上記のようなコードは避けるべきです。これが、ほとんどの場合、常に物事を分解することが推奨される理由です。

于 2012-07-11T07:01:43.453 に答える