シンボリック定数に列挙型を利用する
前回は「シンボリック定数によるマジックナンバーの置き換え」を投稿しましたが、.NETではシンボリック定数を列挙型で表現できます。
以下のように処理ステータスを表わす列挙型を宣言します。
// 処理ステータス
public enum ProcessingStatus : int
{
// 停止
Stop = 0,
// 実行中
WhileRunning
}
問題のあったif文を列挙型を用いて書き直すと、
●
リファクタリング前
if (status == 0)
{
// 停止の場合の処理
}
else if (status == 1)
{
// 実行中の場合の処理
}
●
リファクタリング後
if (status == ProcessingStatus.Stop)
{
// 停止の場合の処理
}
else if (status == ProcessingStatus.WhileRunning)
{
// 実行中の場合の処理
}
となります。
シンボリック定数が長くなり少し冗長に感じますが、この列挙型は処理ステータスを表わす全ての処理で利用できますので、列挙型を用いたほうがプログラムの保守性が向上します。
コメントはまだありません。