Sobes.tech
Junior — Middle

Môžete vysvetliť koncept delegovania v Kotlin a jeho použitie?

sobes.tech AI

Odpoveď od AI

V Kotlinu je delegácia mechanizmus, ktorý umožňuje preniesť implementáciu určitého rozhrania alebo vlastnosti na iný objekt, namiesto priamej implementácie v triede.

Hlavné typy delegácie:

  1. Delegácia rozhrania — trieda implementuje rozhranie, ale v skutočnosti volá metódy iné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()  // Vytlačí 10
}
  1. Delegácia vlastností — umožňuje prepísať správanie getterov a setterov pomocou špeciálnych delegátov, ako sú lazy, observable alebo vlastné:
val lazyValue: String by lazy {
    println("Výpočet hodnoty")
    "Ahoj"
}

Použitie delegácie pomáha znížiť duplikáciu kódu, zvýšiť flexibilitu a opätovné použitie komponentov.