Sobes.tech
Junior — Middle

Puteți explica conceptul de delegare în Kotlin și utilizarea sa?

sobes.tech AI

Răspuns de la AI

În Kotlin, delegarea este un mecanism care permite transferul implementării unei anumite interfețe sau proprietăți către un alt obiect, în loc să o implementeze direct în clasă.

Principalele tipuri de delegare:

  1. Delegarea interfeței — clasa implementează o interfață, dar în realitate apelează metodele altui obiect:
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()  // Va afișa 10
}
  1. Delegarea proprietăților — permite suprascrierea comportamentului getter-ilor și setter-ilor folosind delegați speciali, precum lazy, observable sau proprii:
val lazyValue: String by lazy {
    println("Calcularea valorii")
    "Salut"
}

Utilizarea delegării ajută la reducerea duplicării codului, creșterea flexibilității și reutilizarea componentelor.