Sobes.tech
Junior — Middle
77

Объясните концепцию автоматов состояний и их применение в программировании.

Ответ от нейросети

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;
    }
}

Такой подход упрощает управление сложной логикой и делает код более предсказуемым и поддерживаемым.