Sobes.tech
Junior — Middle

Какво е запечатан клас и какви са основните му предимства и характеристики?

sobes.tech AI

Отговор от AI

Затворен клас (sealed class) е специален вид клас в Kotlin (често използван в разработката за Android), който ограничава йерархията на наследяване. Основната идея е, че всички подкласове на затворения клас трябва да бъдат обявени в същия файл като самия затворен клас.

Предимства и характеристики:

  • Позволява на компилатора да знае пълния набор от подкласове, което подобрява безопасността и удобството при работа с изрази when — компилаторът ще провери дали всички варианти са обработени.
  • Улеснява моделирането на ограничени йерархии, например състояния или събития.
  • Забранява създаването на нови подкласове извън файла, което увеличава контрола върху архитектурата.

Пример:

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}")
    }
}