intermediate
State
Выносите state-specific behavior из conditionals, когда object меняет behavior across explicit lifecycle states.
State выносит поведение фаз жизненного цикла в отдельные state-объекты вместо больших `switch` по status. Переходы — явные методы, меняющие active state: заказы, тикеты, workflows, handshakes. Естественно сочетается с FSM и guards на недопустимые переходы.
На интервью: рефакторинг status `if` chain в State classes. Table-driven FSM как альтернатива.
Типовые ошибки: states непоследовательно мутируют context; дублирование transition logic в UI и backend; недостижимые states в типах.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Каждый state реализует только допустимые операции.
- Нелегальные переходы — понятные ошибки.
- Context делегирует текущему state.
- Диаграмма или таблица допустимых переходов.