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