パンくず
リファクタリング-プログラマーの体質改善テクニック
条件式の単純化
条件記述の統合
内容
リファクタリング名
条件記述の統合
適用ケース要約
同じ結果になる条件テストが複数並んでいる
適用内容要約
それらを1つの条件式にまとめ、メソッドとして抽出する
適用詳細
分岐の見通しを良くする意味でも、同じ値を返却する条件が並んでいたら一か所にまとめること。
サンプル
divタグを出力する機能を実装します。
値に大なり小なり(><)を含んでいた場合は「<」「>」
に変換します。
サンプルコード
# encoding: Shift_JIS def output_div(value) value = value.gsub("<","<") if value.include?("<") value = value.gsub(">",">") if value.include?(">") return "<div>",value,"</div>" end puts output_div ">test<"
# encoding: Shift_JIS def output_div(value) value = escape_html value return "<div>",value,"</div>" end def escape_html(value) value = value.gsub("<","<") if value.include?("<") value = value.gsub(">",">") if value.include?(">") return value end puts output_div ">test<"
出力(共通)
<div> >test< </div>