Sobes.tech
Junior — Middle

Milyen előnyeit és használati eseteit ismered a sealed classnak Kotlinban?

sobes.tech MI

Válasz az MI-től

A sealed osztály Kotlinban a öröklődési hierarchia korlátozására szolgál. Minden sealed osztály alosztályának ugyanabban a fájlban kell lennie, mint maga a sealed osztály. Ez lehetővé teszi a fordítónak, hogy minden lehetséges örököst ismerjen, ami hasznos a when kifejezésekben anélkül, hogy else ágat kellene írni.

Előnyök:

  • Típusbiztonság: a fordító ellenőrzi az összes variáns kezelésének teljességét.
  • Hasznos korlátozott állapot- vagy eseménykészletek modellezéséhez.

Használati forgatókönyvek:

  • Állapotok implementálása "állapot" mintában.
  • Események vagy parancsok kezelése.
  • Korlátozott lehetőségek, például API válaszok reprezentálása.

Példa:

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("Adatok: ${result.data}")
        is Result.Error -> println("Hiba: ${result.error.message}")
        Result.Loading -> println("Betöltés...")
    }
}