Sobes.tech
Junior — Middle

Aké výhody a scenáre použitia poznáš pre sealed class v Kotlin?

sobes.tech AI

Odpoveď od AI

Zapečatená trieda v Kotlin sa používa na obmedzenie hierarchie dedičnosti. Všetky podtriedy zapečatenej triedy musia byť deklarované v rovnakom súbore ako samotná zapečatená trieda. To umožňuje kompilátoru poznať všetky možné varianty dedičov, čo je užitočné pri používaní v výrazoch when bez potreby písania vetvy else.

Výhody:

  • Bezpečnosť typov: kompilátor kontroluje úplnosť spracovania všetkých variantov.
  • Vhodné na modelovanie obmedzených súborov stavov alebo udalostí.

Scenáre použitia:

  • Implementácia stavov v vzore "stav".
  • Spracovanie udalostí alebo príkazov.
  • Zobrazenie obmedzeného množstva možností, napríklad odpovedí API.

Príklad:

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

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Dáta: ${result.data}")
        is Result.Error -> println("Chyba: ${result.error.message}")
        Result.Loading -> println("Načítava sa...")
    }
}