Con Kotlin 1.5
se introdujo la sealed interface
. Aunque conozco la diferencia entre clases e interfaces, no tengo claro cuáles son las mejores prácticas y los beneficios de usar una sealed interface
sealed class
¿Debería usar siempre interface
ahora, incluso cuando es un caso simple? ¿O será caso por caso?
Gracias
Obs: No encontré preguntas similares, solo sobre sealed classes
Una razón importante para elegir usar una clase sellada en lugar de una interfaz sería si hay una propiedad/función común que no desea que sea public
. Todos los miembros de una interfaz son siempre públicos.
La restricción de que los miembros deben ser public
se puede solucionar en una interfaz usando funciones/propiedades de extensión, pero solo si no implica almacenar el estado de forma no pública.
De lo contrario, las interfaces selladas son más flexibles porque permiten que un subtipo sea una subclase de otra cosa, una clase de enumeración o un subtipo de múltiples jerarquías de clase/interfaz selladas.