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.