リファクタリング:条件記述の統合

同じ結果を持つ一連の条件判定がある場合、
それらを1つの条件記述にまとめてから抽出します。
リファクタリング前

private void LevelUp()
{
// レベルアップできるかどうかを確認します。
if (MaxLevel <= _level)
{
return;
}

if (_exp < NextExp)
{
return;
}

// レベルアップします。
_level++;
_exp -= NextExp;
}
リファクタリング後

private void LevelUp()
{
// レベルアップできるかどうかを確認します。
if (!CanLevelUp())
{
return;
}

// レベルアップします。
_level++;
_exp -= NextExp;
}

private bool CanLevelUp()
{
return _level < MaxLevel && NextExp <= _exp;
}
条件記述のコードを統合することが重要である理由は2つあります。
1つは、他の条件判定とorで繋げることで実際は単一の条件判定を行うことを示して、
その条件判定を明確にする為です。もう1つの理由は、このリファクタリングはしばしば
「メソッドの抽出」の下準備としての役割を持つためです。

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

Comment

Comment Form
公開設定

Trackback


→ この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。