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