Sobes.tech
Junior — Middle

¿Puedes explicar el concepto de delegación en el lenguaje Kotlin y su aplicación?

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. Esto ayuda a evitar la duplicación de código y simplifica la composición.

El ejemplo más común es la delegación de propiedades mediante la palabra clave by.

Ejemplo de delegación de propiedad:

class User {
    var name: String by Delegates.observable("") { prop, old, new ->
        println("La propiedad ${prop.name} cambió de $old a $new")
    }
}

También se puede delegar la implementación de una interfaz:

interface Printer {
    fun print()
}

class RealPrinter : Printer {
    override fun print() {
        println("Imprimiendo documento")
    }
}

class Manager(printer: Printer) : Printer by printer

fun main() {
    val realPrinter = RealPrinter()
    val manager = Manager(realPrinter)
    manager.print() // la llamada se delega a realPrinter
}

Este enfoque permite dividir responsabilidades y reutilizar código sin herencia.