Junior — Middle
¿Puedes explicar el concepto de delegación en Kotlin y su uso?
sobes.tech AI
Respuesta de la IA
En Kotlin, la delegación es un mecanismo que permite transferir la implementación de una interfaz o propiedad específica a otro objeto, en lugar de implementarla directamente en la clase.
Principales tipos de delegación:
- Delegación de interfaz — la clase implementa una interfaz, pero en realidad llama a los métodos de otro objeto:
interface Base {
fun print()
}
class BaseImpl(val x: Int) : Base {
override fun print() { println(x) }
}
class Derived(b: Base) : Base by b
fun main() {
val b = BaseImpl(10)
Derived(b).print() // Imprimirá 10
}
- Delegación de propiedades — permite sobrescribir el comportamiento de getters y setters mediante delegados especiales, como
lazy,observableo propios:
val lazyValue: String by lazy {
println("Cálculo del valor")
"Hola"
}
El uso de delegación ayuda a reducir la duplicación de código, aumentar la flexibilidad y la reutilización de componentes.