Sobes.tech
Junior — Middle

Šta je zatvorena klasa i koje su njene glavne prednosti i karakteristike?

sobes.tech АИ

Одговор од АИ

Zapečaćena klasa (sealed class) je poseban tip klase u Kotlinu (često korišćen u razvoju za Android), koji ograničava hijerarhiju nasledjivanja. Glavna ideja je da sve podklase zapečaćene klase moraju biti deklarisane u istoj datoteci kao i sama zapečaćena klasa.

Prednosti i karakteristike:

  • Omogućava kompilatoru da zna celokupan skup podklasa, što poboljšava sigurnost i pogodnost pri radu sa izrazima when — kompilator će proveriti da li su sve varijante obrađene.
  • Olakšava modelovanje ograničenih hijerarhija, na primer, stanja ili događaji.
  • Zabranjuje kreiranje novih podklasa van datoteke, čime se povećava kontrola nad arhitekturom.

Primer:

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("Podaci: ${result.data}")
        is Result.Error -> println("Greška: ${result.error.message}")
    }
}