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
}
Този подход позволява разделяне на отговорностите и повторно използване на кода без наследяване.