Junior — Middle
79
Объясните концепцию автоматов состояний и их применение в программировании.
Answer from AI
sobes.tech AI
Автомат состояний (Finite State Machine, FSM) — это модель вычислений, которая описывает систему с конечным числом состояний и переходами между ними в ответ на события.
В программировании автоматы состояний применяются для:
- Управления логикой с чётко определёнными состояниями (например, состояние игры, UI-компонента, протокола).
- Обработки событий и переходов между состояниями.
Пример: простой автомат для кнопки с состояниями Normal, Hovered, Pressed.
enum ButtonState { Normal, Hovered, Pressed }
class ButtonFSM {
ButtonState state = ButtonState.Normal;
public void OnMouseEnter() {
if(state == ButtonState.Normal) state = ButtonState.Hovered;
}
public void OnMouseDown() {
if(state == ButtonState.Hovered) state = ButtonState.Pressed;
}
public void OnMouseUp() {
if(state == ButtonState.Pressed) state = ButtonState.Hovered;
}
public void OnMouseLeave() {
state = ButtonState.Normal;
}
}
Такой подход упрощает управление сложной логикой и делает код более предсказуемым и поддерживаемым.