Junior — Middle
Puoi spiegare il concetto di delega nel linguaggio Kotlin e la sua applicazione?
sobes.tech AI
Risposta dell'AI
In Kotlin, la delega è un meccanismo che consente di trasferire l’implementazione di un’interfaccia o di una proprietà specifica a un altro oggetto, invece di implementarla direttamente nella classe. Questo aiuta a evitare la duplicazione del codice e semplifica la composizione.
L’esempio più comune è la delega delle proprietà tramite la parola chiave by.
Esempio di delega di proprietà:
class User {
var name: String by Delegates.observable("") { prop, old, new ->
println("La proprietà ${prop.name} è cambiata da $old a $new")
}
}
È anche possibile delegare l’implementazione di un’interfaccia:
interface Printer {
fun print()
}
class RealPrinter : Printer {
override fun print() {
println("Stampa del documento")
}
}
class Manager(printer: Printer) : Printer by printer
fun main() {
val realPrinter = RealPrinter()
val manager = Manager(realPrinter)
manager.print() // la chiamata viene delegata a realPrinter
}
Questo approccio permette di dividere le responsabilità e riutilizzare il codice senza ereditarietà.