Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sealed Classes: ¿Por qué y para qué?

Sealed Classes: ¿Por qué y para qué?

Charla para el canal Thanks God It's Kotlin. Link: https://www.youtube.com/watch?v=LmMD3fjo3N4

Facundo Rodríguez Arceri

August 07, 2020
Tweet

More Decks by Facundo Rodríguez Arceri

Other Decks in Programming

Transcript

  1. Enums Utilidad • Los subtipos posibles son limitados. • Pueden

    tener atributos y funciones. Limitaciones • Cada enum es una instancia única. • Cada enum debe ser concreto, no puede representar o agrupar otra jerarquía. • Todos los enums deben tener los mismos atributos y funciones.
  2. Abstract Classes Utilidad • Pueden crearse instancias de los subtipos.

    • Un subtipo puede representar otra jerarquía. • Cada subtipo puede tener atributos y funciones distintas respecto a los otros. Limitaciones • Podrían crearse más subtipos de la clase abstracta.
  3. Sealed classes • Jerarquías cerradas o limitadas de clases •

    Conjunto limitado de subtipos • ¡Ahhh…! ¡Es igual que… pero con...!
  4. Características de las Sealed classes • La sealed class es

    abstracta. • Todos los subtipos deben estar en el mismo archivo. • Los subtipos pueden ser cualquier tipo de clase. • El compilador puede ayudarnos cuando usamos if o when como expresiones.
  5. ¿Para qué son útiles? • Estados de la vista. •

    Parámetros necesarios para crear una vista. • Respuestas posibles ante una acción. • Patrón Strategy / State en general.
  6. Links útiles • Kotlin docs: Sealed classes • Kotlin vocabulary

    - Sealed with a class • Sealed classes en Kotlin: los enums con superpoderes • TIL: when is “when” exhaustive?