-3
私はこのような大きなif-elseステートメントを持っています。どうすればそれをリファクタリングできますか?誰かがそれをより美しくする方法をいくつか挙げることができますか?ありがとう!このような大きなIF-ELSEステートメントをリファクタリングする方法
public enum FireState
{
None,
NoneToMinor,
Minor,
MinorToNone,
MinorRecovery,
MinorToMajor,
Major,
MajorToNone,
MajorRecovery
}
private static FireState GetFireState(int previousRespinCount, int currentRespinCount, bool isRecovery)
{
FireState fire = FireState.None;
if ((isRecovery || previousRespinCount == 0) && currentRespinCount < MinorJackpotMinRange)
{
fire = FireState.None;
}
else if (previousRespinCount == 0 &&
(currentRespinCount >= MinorJackpotMinRange
&& currentRespinCount < MinorJackpotMaxRange))
{
fire = FireState.MinorRecovery;
}
else if (isRecovery && currentRespinCount >= MinorJackpotMaxRange)
{
fire = FireState.MajorRecovery;
}
else if (previousRespinCount == (MinorJackpotMinRange - 1)
&& currentRespinCount == MinorJackpotMinRange)
{
fire = FireState.NoneToMinor;
}
else if (previousRespinCount >= MinorJackpotMinRange
&& (currentRespinCount > 0 && currentRespinCount < MinorJackpotMaxRange))
{
fire = FireState.Minor;
}
else if ((previousRespinCount >= MinorJackpotMinRange &&
previousRespinCount < MinorJackpotMaxRange) &&
currentRespinCount == 0)
{
fire = FireState.MinorToNone;
}
else if (previousRespinCount == (MinorJackpotMaxRange - 1)
&& currentRespinCount == MinorJackpotMaxRange)
{
fire = FireState.MinorToMajor;
}
else if (previousRespinCount >= MinorJackpotMaxRange &&
currentRespinCount >= MinorJackpotMaxRange)
{
fire = FireState.Major;
}
else if (previousRespinCount >= MinorJackpotMaxRange
&& currentRespinCount == 0)
{
fire = FireState.MajorToNone;
}
return fire;
}
http://codereview.stackexchange.com/ –
JavaとC#のソリューションは異なるでしょうので、私はこのトピックをオフトピックとして閉じることにしました。これはC#のようですが、Javaではなく、そうですか? – dasblinkenlight
@TimSchmelterオフトピックです。また、コードレビューではより適切です。しかしそれはOn-Topicであり、ここに有効な近い理由はない。 – Kaz