«Clases cerradas = clases abstractas + enumeración ++ clases»
Las clases cerradas se utilizan para representar jerarquías de clases restringidas cuando un valor puede tener uno de los tipos de un conjunto restringido pero no puede tener ningún otro tipo.
Puede ser definido Sealed classes
es una extensión enum classes
y porque una subclase de una clase cerrada puede tener varias instancias que pueden contener un estado. Cada instancia Sealed class
puede contener datos personalizados
Declarar sealed class
, insertamos el modificador sellado antes del nombre de la clase. Y sealed class
puede tener subclasesobject, data class
…), Pero todos deben declararse en el mismo archivo que la propia clase sellada
sealed class StateApi {
object Loading : StateApi()
data class Success(val data: String) : StateApi()
data class Error(val error: Exception) : StateApi()
}
Ejemplo anterior: Loading, Success, Error
es una instancia StateApi.
Lo extraño esta aqui Success
Yippee data class
Contiene params
son datos: String
, una Error
Contiene params
es un error: Exception
. Por lo que podemos devolver estados fácilmente cuando solicitamos datos de la API.
Una clase cerrada es abstracta en sí misma, no se puede crear directamente y puede tener miembros abstractos. Las clases selladas no están permitidas por constructores no privados
Solicitud de estado de API de proceso
Procesar el elemento de acción del evento ViewHolder
reemplazar con clase de interfaz
Además, podemos usar clases selladas para ViewHolder
tipo, vista de acción en fragment
o activity
…