パンくず
リファクタリング-プログラマーの体質改善テクニック
メソッドの構成
問い合わせによる一時変数の置き換え
内容
リファクタリング名
問い合わせによる一時変数の置き換え
適用ケース要約
一時変数を使って式の結果を保存している
適用詳細
一時変数は長いメソッドの温床になりやすい要素です。
一時変数に設定されている内容を、問い合わせメソッドに変更することで
メソッドを短くし、可読性を高めることが出来ます。
また問い合わせメソッドとして抽出された処理は再利用性が高まります。
置き換え時は、一時変数の右辺の内容をそのままメソッドに抽出し、
結果を返却するようにします。
修正後の右辺は新たに作成した問い合わせメソッドを呼び出します。
サンプル
2つのメッセージを墨付き括弧で強調する機能を実装します。
サンプルコード
※便宜上変更前と変更後でメソッド名が変わってますが本来は同じです。
サンプルコードはRubyで実装してあります
▼リファクタリング前
def temporary_variable_to_method_before(message1,message2) strong_message1 = "【#{message1}】" puts strong_message1 strong_message2 = "【#{message2}】" puts strong_message2 end temporary_variable_to_method_before "hoge","hoo"
▼リファクタリング後
def temporary_variable_to_method_after(message1,message2) puts get_strong_message message1 puts get_strong_message message2 end private def get_strong_message(message) return "【#{message}】" end temporary_variable_to_method_after "hoge","hoo"
▼出力結果(共通)
【hoge】 【hoo】