Sobes.tech
Junior — Middle

Kotlin tilida delegatsiya tushunchasini va uning qo'llanilishini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

Kotlin'da delegasiya, müəyyən bir interfeys və ya xüsusiyyətin tətbiqini birbaşa sinifdə yerinə yetirmək əvəzinə, başqa bir obyektə ötürməyə imkan verən mexanizmdir. Bu, kod təkrarlamasını qarşısını alır və tərkibə asanlıqla kömək edir.

Ən çox yayılmış nümunə, by açar sözü ilə xüsusiyyətlərin delegasiyasıdır.

Xüsusiyyətin delegasiyası nümunəsi:

class User {
    var name: String by Delegates.observable("") { prop, köhnə, yeni ->
        println("${prop.name} xüsusiyyəti $köhnə-dən $yeni-ə dəyişdi")
    }
}

Həmçinin, interfeysin tətbiqini də delegasiya etmək mümkündür:

interface Printer {
    fun print()
}

class RealPrinter : Printer {
    override fun print() {
        println("Sənəd çap edilir")
    }
}

class Manager(printer: Printer) : Printer by printer

fun main() {
    val realPrinter = RealPrinter()
    val manager = Manager(realPrinter)
    manager.print() // çağırış realPrinter-ə delegasiya olunur
}

Bu yanaşma məsuliyyətlərin bölünməsinə və kodun irsi olmadan təkrar istifadəsinə imkan verir.