Sobes.tech
Junior — Middle

Můžete vysvětlit koncept delegování v Kotlinu a jeho použití?

sobes.tech AI

Odpověď od AI

V Kotlinu je delegace mechanismus, který umožňuje předat implementaci určitého rozhraní nebo vlastnosti jinému objektu namísto jejího přímého implementování ve třídě.

Hlavní typy delegace:

  1. Delegace rozhraní — třída implementuje rozhraní, ale ve skutečnosti volá metody jiného objektu:
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()  // Vytiskne 10
}
  1. Delegace vlastností — umožňuje přepsat chování getterů a setterů pomocí speciálních delegátů, například lazy, observable nebo vlastní:
val lazyValue: String by lazy {
    println("Výpočet hodnoty")
    "Ahoj"
}

Použití delegace pomáhá snížit duplicitní kód, zvýšit flexibilitu a znovu použitelnost komponent.