Ответ
Delegates в Kotlin — это шаблон проектирования, позволяющий делегировать выполнение операций другому объекту. В Kotlin есть встроенная поддержка делегатов через ключевое слово by.
Основные виды делегатов:
- Lazy — инициализация при первом обращении
- Observable — отслеживание изменений свойства
- Vetoable — проверка перед изменением свойства
- Map — хранение свойств в Map
Пример с lazy:
val heavyObject by lazy {
HeavyObject() // создастся только при первом обращении
}
Пример с observable:
var name by Delegates.observable("") { _, old, new ->
println("$old -> $new")
}
Делегаты помогают уменьшить шаблонный код и реализовать чистую архитектуру.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶