Sobes.tech
Junior — Middle

Kotlin'da delegatsiya tushunchasini va uning foydalanilishini tushuntira olasizmi?

sobes.tech AI

AIdan javob

Kotlin'da delegatsiya, muayyan interfeys yoki xususiyatning amalga oshirilishini boshqa ob'ektga o'tkazish mexanizmi bo'lib, uni to'g'ridan-to'g'ri sinfda amalga oshirish o'rniga foydalaniladi.

Asosiy delegatsiya turlari:

  1. Interfeys delegatsiyasi — sinf interfeysni amalga oshiradi, ammo aslida boshqa ob'ekt metodlarini chaqiradi:
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()  // 10 ni chiqaradi
}
  1. Xususiyat delegatsiyasi — maxsus delegatlar yordamida getter va setterlarning xatti-harakatlarini qayta yozishga imkon beradi, masalan lazy, observable yoki o'zlari:
val lazyValue: String by lazy {
    println("Qiymat hisoblanmoqda")
    "Salom"
}

Delegatsiya foydalanish kodni takrorlashni kamaytirishga, moslashuvchanlikni oshirishga va komponentlarni qayta ishlatishga yordam beradi.