FC2ブログ

リファクタリング:ガード節による入れ子条件記述の置き換え

メソッドに正常ルートが不明確な条件つき振る舞いがある場合、
特殊ケースすべてに対してガード節を使います。

private string GetState()
{
string result;

if (_isPoison)
{
result = "毒";
}
else
{
if (_isParalysis)
{
result = "麻痺";
}
else
{
if (_isSleep)
{
result = "眠り";
}
else
{
result = "正常";
}
}
}

return result;
}

private string GetState()
{
if (_isPoison)
{
return "毒";
}
if (_isParalysis)
{
return "麻痺";
}
if (_isSleep)
{
return "眠り";
}

return "正常";
}
条件記述は次の2つの形式に分類されます。
1つは、条件判定のいずれも正常条件であって、どちらのルートを取るかを判定するものです。
もう1つは、条件判定の結果の一方が正常条件で、それ以外は特殊条件である場合です。

特殊条件では、条件をチェックしてその結果が真のときにはリターンします。
この種のチェックは、しばしばガード節と呼ばれます。

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

Comment

Comment Form
公開設定

Trackback


→ この記事にトラックバックする(FC2ブログユーザー)