Sobes.tech
Junior — Middle

Čo je uzavretá trieda a aké sú jej hlavné výhody a vlastnosti?

sobes.tech AI

Odpoveď od AI

Zapečatená trieda (sealed class) je špeciálny typ triedy v Kotlin (často používaný pri vývoji pre Android), ktorý obmedzuje hierarchiu dedičnosti. Hlavná myšlienka je, že všetky podtriedy zapečatenej triedy musia byť deklarované v rovnakom súbore ako samotná zapečatená trieda.

Výhody a vlastnosti:

  • Umožňuje kompilátoru poznať úplný súbor podtried, čo zvyšuje bezpečnosť a pohodlie pri práci s výrazmi when — kompilátor skontroluje, či sú všetky varianty spracované.
  • Uľahčuje modelovanie obmedzených hierarchií, napríklad stavov alebo udalostí.
  • Zakazuje vytváranie nových podtried mimo súboru, čím sa zvyšuje kontrola nad architektúrou.

Príklad:

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("Dáta: ${result.data}")
        is Result.Error -> println("Chyba: ${result.error.message}")
    }
}