パンくず
リファクタリング-プログラマーの体質改善テクニック
条件式の単純化
重複した条件の断片の統合
内容
リファクタリング名
重複した条件の断片の統合
適用ケース要約
条件式のすべての分岐に同じコード片が含まれている
適用内容要約
その部分を式の外に出す
適用詳細
重複部分を分岐の外に出すことによってい分岐内は処理に差異がある部分のみになり
見通しがよくあんります。
サンプル
三角形,四角形の面積を求めます。
どちらの場合も同じフォーマットで結果メッセージを表示します。
サンプルコード
def output_figure_area(angle_count,height,width) result=0 if angle_count==3 result=(height*width)/2 output_message(result) elsif angle_count==4 result=height*width output_message(result) else raise 'error' end end def output_message(result) puts "面積は#{result}です" end output_figure_area(3,5,10) output_figure_area(4,5,10)
# encoding: Shift_JIS def output_figure_area(angle_count,height,width) result=0 if angle_count==3 result=(height*width)/2 elsif angle_count==4 result=height*width else raise 'error' end output_message(result) end def output_message(result) puts "面積は#{result}です" end output_figure_area(3,5,10) output_figure_area(4,5,10)
出力(共通)
面積は25です 面積は50です