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:
- 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
}
- Delegace vlastností — umožňuje přepsat chování getterů a setterů pomocí speciálních delegátů, například
lazy,observablenebo 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.