Предположим, что у нас есть сложный класс, который взаимодействует с несколькими другими другими объектами, и эти взаимодействия зависят от состояний друг от друга.Является ли сохранение нескольких логических переменных как переменных состояния плохой практикой программирования?
Сразу же я попытался использовать несколько булевых состояний, чтобы попытаться отслеживать эти состояния, но это часто приводит к запутанному коду, заполненному операторами IF.
Есть ли разрешенные решения или шаблоны проектирования, чтобы справиться с этим, минимизируя беспорядок?
В качестве примера рассмотрим что-то вроде этого:
int Foo(int A, int B, inc C)
{
if(_state1 && !_state2)
return A+B;
else if(_state1 && _state2 && _state3)
return A+C;
else if(!_state1 && (_state4 || _state5)
return C;
...
}
Это легко увидеть, как что-то, как это будет работать из-под контроля очень быстро
Государственный шаблон приходит на ум, но ваш вопрос слишком расплывчатый. Вы лучше опубликуете код, чтобы мы видели, как его улучшить. –
Нет конкретного примера, это просто то, с чем я столкнулся несколько раз. Я попытаюсь получить пример, но – Daniel
Вы говорите о чем-то, где у вас есть последовательность переменных состояния, таких как 'is_ready_for_method_a',' is_ready_for_method_b' и т. Д.? В этом случае вы будете искать конечный автомат. –