Что такое конечный автомат

«Что такое конечный автомат» — вопрос из категории Алгоритмы и структуры данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Пример:

sealed class State {
    object Idle : State()
    object Loading : State()
    object Success : State()
    data class Error(val message: String) : State()
}

fun handleState(state: State) {
    when (state) {
        is State.Idle -> fetchData()
        is State.Loading -> showProgress()
        is State.Success -> showContent()
        is State.Error -> showError(state.message)
    }
}

Используется для управления сложной логикой UI (например, загрузка данных), обработки событий или управления навигацией.