Sobes.tech
Junior — Middle

Kotlin dilində delege etmə konseptini və onun tətbiqini 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 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.