Sobes.tech
Junior — Middle

Оё шумо метавонед консепсияи вурудро дар забони Kotlin ва истифодаи он шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Дар Kotlin, делегатсия — это механизъм, който позволява прехвърлянето на реализацията на определен интерфейс или свойство към друг обект, вместо да се реализира директно в класа. Това помага да се избегне дублиране на код и улеснява съставянето.

Най-често срещаният пример е делегирането на свойства с помощта на ключовата дума by.

Пример за делегиране на свойство:

class User {
    var name: String by Delegates.observable("") { prop, old, new ->
        println("Свойството ${prop.name} се промени от $old на $new")
    }
}

Също така може да делегирате реализацията на интерфейс:

interface Printer {
    fun print()
}

class RealPrinter : Printer {
    override fun print() {
        println("Печат на документа")
    }
}

class Manager(printer: Printer) : Printer by printer

fun main() {
    val realPrinter = RealPrinter()
    val manager = Manager(realPrinter)
    manager.print() // извикването се делегира на realPrinter
}

Този подход позволява разделяне на отговорностите и повторно използване на кода без наследяване.