Junior — Middle
Puoi spiegare il concetto di delega in Kotlin e il suo utilizzo?
sobes.tech AI
Risposta dell'AI
In Kotlin, la delega è un meccanismo che permette di trasferire l’implementazione di un’interfaccia o di una proprietà specifica a un altro oggetto, invece di implementarla direttamente nella classe.
Principali tipi di delega:
- Delegazione di interfaccia — la classe implementa un’interfaccia, ma in realtà chiama i metodi di un altro oggetto:
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() // Stampa 10
}
- Delegazione di proprietà — permette di sovrascrivere il comportamento di getter e setter tramite delegati speciali, come
lazy,observableo propri:
val lazyValue: String by lazy {
println("Calcolo del valore")
"Ciao"
}
L’uso della delega aiuta a ridurre la duplicazione del codice, aumentare la flessibilità e il riutilizzo dei componenti.