Sobes.tech
Junior — Middle

¿Qué ventajas y escenarios de uso conoces de la clase sealed en Kotlin?

sobes.tech AI

Respuesta de la IA

La clase sellada en Kotlin se utiliza para restringir la jerarquía de herencia. Todas las subclases de una clase sellada deben ser declaradas en el mismo archivo que la clase sellada. Esto permite que el compilador conozca todas las posibles variantes de herederos, lo cual es útil para usar en expresiones when sin necesidad de escribir una rama else.

Ventajas:

  • Seguridad de tipos: el compilador verifica la exhaustividad del manejo de todas las variantes.
  • Conveniente para modelar conjuntos limitados de estados o eventos.

Escenarios de uso:

  • Implementación de estados en el patrón "estado".
  • Manejo de eventos o comandos.
  • Representación de un conjunto limitado de opciones, por ejemplo, respuestas de API.

Ejemplo:

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("Datos: ${result.data}")
        is Result.Error -> println("Error: ${result.error.message}")
        Result.Loading -> println("Cargando...")
    }
}