Back to questions
Junior — Middle
71
Можете объяснить концепцию автоматов состояний и как она применяется в программировании?
Companies where asked
Joy Dev
Answer from AI
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
Таким образом, автомат состояний помогает структурировать логику, делая её более предсказуемой и управляемой.