抽出メソッド(Fowlerの本からのリファクタリング)は、メソッドで値が割り当てられていない場合に効果的です。 1つの値を割り当てると、抽出されたメソッドの戻り値になります。 2つの値を割り当てるとどうなりますか?2つの値を割り当てるメソッドを抽出するにはどうすればよいですか?
説明するためのいくつかのC#コード:
private void someBigFunction() {
doSomething();
doSomethingElse();
// start extraction here
string first = Database.Select(...);
// ...
// next is dependent on the value of "first"
int next = Database.Select(...);
// ...
// stop extraction here
doMoreUselessStuff();
}
正確なコードまたは値がここでは重要ではありません。ポイントは、このメソッドを抽出しています。 (2つの値はリンクされているので、2つのメソッドを作成するのではなく、同じメソッドでそれらを持つことが理にかなっています)。
この質問に対する可能な回答は、両方のペアのようなデータ構造 "または"(参照渡しのパラメータを使用して) " - しかし、私は何か清潔を探しています。 (実際のコードはC#ではなくDelphiにあります)
私はメソッドを持たないクラスを作るのは好きではありませんが、問題をきれいに解決します。変数のグループ化を開始すると、メソッドが続きます。 – ashes999