Sobes.tech
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:

  1. 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
}
  1. Delegación de propiedades — permite sobrescribir el comportamiento de getters y setters mediante delegados especiales, como lazy, observable o 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.