Sobes.tech
Junior — Middle

Kotlin-də delege etmə anlayışını və onun istifadəsini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də delegasiya, müəyyən bir interfeys və ya xüsusiyyətin həyata keçirilməsini başqa bir obyektə ötürməyə imkan verən mexanizmdir, bununla da onu birbaşa sinifdə həyata keçirmək əvəzinə istifadə olunur.

Əsas delegasiya növləri:

  1. İnterfeys delegasiyası — sinif bir interfeysi həyata keçirir, amma əslində başqa bir obyektin metodlarını çağırır:
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 çap edir
}
  1. Xüsusiyyət delegasiyası — xüsusi delegatlar vasitəsilə getter və setterlərin davranışını yenidən tənzimləməyə imkan verir, məsələn lazy, observable və ya özləri:
val lazyValue: String by lazy {
    println("Dəyər hesablanır")
    "Salam"
}

Delegasiya istifadəsi kodun təkrarlanmasını azaltmağa, çevikliyi artırmağa və komponentlərin təkrar istifadəsinə kömək edir.