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.