Назад к вопросам
Junior — Middle
64
Можешь объяснить концепцию делегирования в языке Kotlin и его применение?
Ответ от нейросети
sobes.tech 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
}
Такой подход позволяет разделять ответственность и повторно использовать код без наследования.