Sobes.tech
Junior — Middle
64

Какова цель использования sealed class в программировании?

Компании, где спрашивали
Смарттек

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

sobes.tech AI

Sealed class (запечатанный класс) — это специальный тип класса, который ограничивает наследование: все подклассы должны быть объявлены в том же файле, что и сам sealed класс. Это позволяет компилятору знать полный набор наследников и обеспечивает более строгий контроль над иерархией классов.

Цель использования sealed class:

  • Гарантировать, что все возможные варианты наследников известны и ограничены.
  • Упростить обработку таких классов, например, при использовании конструкции when в Kotlin, где компилятор может проверить полноту обработки всех вариантов.
  • Повысить безопасность и предсказуемость кода.

Пример на Kotlin:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
}

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Данные: ${result.data}")
        is Result.Error -> println("Ошибка: ${result.error.message}")
    }
}

Здесь Result — sealed класс, и все его наследники определены в одном файле, что позволяет безопасно обрабатывать все варианты.