重複した条件記述の断片の統合
条件分岐全てに同じコードが存在する場合は、そのコードを条件分岐の外に移動します。
たとえば「価格を登録する」というメソッドが以下のように定義されていたとします。
// 価格を登録します
private void RegisterPrice(ConsumptionTax taxType)
{
// 内税の場合
if (taxType == ConsumptionTax.TaxIncluded)
{
// 内税の価格を計算
CalculateTaxIncludedPrice();
// 登録する
Register();
}
else
{
// 外税の価格を計算
CalculateIncludeItemPrice();
// 登録する
Register();
}
}
ソースを見ると、登録するための「Register」メソッドが条件分岐全てに存在しますので、条件分岐の外へ移動します。
// 価格を登録します
private void RegisterPrice(ConsumptionTax taxType)
{
// 内税の場合
if (taxType == ConsumptionTax.TaxIncluded)
{
// 内税の価格を計算
CalculateTaxIncludedPrice();
}
else
{
// 外税の価格を計算
CalculateIncludeItemPrice();
}
// 登録する
Register();
}
こうしておけば条件により分岐する処理と、条件によらず必ず実行しなければならない処理が明確になりますので、保守性が向上します。
コメントはまだありません。