Имеется класс с набором состояний. В этом классе есть N функций. Каждая функция должна делать то или иное в зависимости от текущего состояния, попутно проверяя ввод. В итоге каждая функция похоже на что-то вроде
private void FuncN(string[] params)
{
if (CheckFuncNParams(params))
if (state == State.StateX)
if (collection.ContainsKey(params[2]))
index++;
else
Console.WriteLine("error message 3");
else
Console.WriteLine("error message 2");
else
Console.WriteLine("error message 1");
}
Можно развернуть проверки в линейные, но не знаю насколько стало лучше от этого
private void FuncN(string[] params)
{
if (!CheckFuncNParams(params))
{
Console.WriteLine("error message 1");
return;
}
if (state != State.StateX)
{
Console.WriteLine("error message 2");
return;
}
if (collection.ContainsKey(params[2]))
index++;
else
Console.WriteLine("error message 3");
}