Sobes.tech
Junior — Middle

Ce avantaje și scenarii de utilizare cunoști pentru clasa sealed în Kotlin?

sobes.tech AI

Răspuns de la AI

Clasa sealed în Kotlin este utilizată pentru a restricționa ierarhia de moștenire. Toate subclasele clasei sealed trebuie declarate în același fișier cu clasa sealed însăși. Acest lucru permite compilatorului să cunoască toate variantele posibile de moștenitori, ceea ce este util pentru utilizarea în expresii when fără a fi nevoie să scrieți o ramură else.

Avantaje:

  • Siguranța tipurilor: compilatorul verifică exhaustivitatea tratamentului tuturor variantelor.
  • Convenabil pentru modelarea seturilor limitate de stări sau evenimente.

Scenarii de utilizare:

  • Implementarea stărilor în modelul "stare".
  • Procesarea evenimentelor sau comenzilor.
  • Reprezentarea unui set limitat de opțiuni, de exemplu, răspunsuri API.

Exemplu:

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("Date: ${result.data}")
        is Result.Error -> println("Eroare: ${result.error.message}")
        Result.Loading -> println("Se încarcă...")
    }
}