技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

オブジェクトそのものの受け渡し【リファクタリング】

状況

  • あるオブジェクトから複数の値を取得し、それらの値をメソッド呼び出しのパラメータとして使用している

対処

  • メソッドのパラメータにはオブジェクトそのものを渡すよう変更する


結果として、ほとんどのパラメータがあるオブジェクトに依存する場合には、
本来そのオブジェクトに対するメソッドとして定義されるべきなのかもしれません。
「メソッドの移動」を検討する必要もあるでしょう。

パラメータとして渡すオブジェクトが定義されていない場合は、「パラメータオブジェクトの導入」を行います。

メリット

  • 変更に対して柔軟になる

  • コードが読みやすくなる

  • 中間値の取得処理をオブジェクトのメソッドに定義できるので、コードの重複を削減できる


手順

  • データを保持しているオブジェクトを新しいパラメータとする

  • コンパイルしてテストする

  • パラメータのなかで、オブジェクトそのものから取得できるものを決める

  • パラメータの中から一つ選び、メソッド内でのそのパラメータへの参照を、オブジェクトのメソッド呼び出しに置き換える

  • そのパラメータを削除する

  • コンパイルしてテストする

  • オブジェクトそのものから取得できるパラメータそれぞれに対して、選択からテストまでを繰り返す

  • 呼び出し側のメソッドを修正する

  • コンパイルしてテストする


楽天ブックス: リファクタリング新装版 - 既存のコードを安全に改善する - マーチン・ファウラー - 9784274050190 : 本