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

  1. 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
}
  1. Delegazione di proprietà — permette di sovrascrivere il comportamento di getter e setter tramite delegati speciali, come lazy, observable o 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.