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:
- 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
}
- Xususiyat delegatsiyasi — maxsus delegatlar yordamida getter va setterlarning xatti-harakatlarini qayta yozishga imkon beradi, masalan
lazy,observableyoki o'zlari:
val lazyValue: String by lazy {
println("Qiymat hisoblanmoqda")
"Salom"
}
Delegatsiya foydalanish kodni takrorlashni kamaytirishga, moslashuvchanlikni oshirishga va komponentlarni qayta ishlatishga yordam beradi.