Sobes.tech
Назад к вопросам
Junior — Middle
72

Можете объяснить концепцию автоматов состояний и как она применяется в программировании?

Компании, где спрашивали
Joy Dev

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

sobes.tech AI

Автомат состояний (Finite State Machine, FSM) — это модель вычислений, которая описывает систему с конечным числом состояний и переходов между ними в ответ на события или условия.

В программировании автоматы состояний применяются для управления поведением программы, где в каждый момент времени система находится в одном из состояний, и переходы между состояниями происходят по определённым правилам.

Пример использования:

  • В интерфейсах для управления состояниями кнопок или экранов.
  • В играх для управления поведением персонажей.
  • В сетевых протоколах для обработки последовательности сообщений.

Пример простой реализации автомата состояний на Python:

class StateMachine:
    def __init__(self):
        self.state = 'idle'

    def on_event(self, event):
        if self.state == 'idle':
            if event == 'start':
                self.state = 'running'
        elif self.state == 'running':
            if event == 'stop':
                self.state = 'idle'

sm = StateMachine()
print(sm.state)  # idle
sm.on_event('start')
print(sm.state)  # running
sm.on_event('stop')
print(sm.state)  # idle

Таким образом, автомат состояний помогает структурировать логику, делая её более предсказуемой и управляемой.