Делегаты в Kotlin-е. Какие бывают, зачем нужны?

Делегаты в Kotlin — мощный инструмент, который позволяет переопределить поведение геттера/сеттера, вынести повторяющуюся логику, и писать более декларативный, читаемый код.

Делегирование свойства — это когда мы передаём логику get() и set() специальному объекту.
В Kotlin это делается с помощью ключевого слова by.

Какие бывают делегаты в Kotlin?

ДелегатНазначение
lazy { ... }Вычисляется один раз при первом обращении, ленивая инициализация
observable { _, old, new -> }Коллбек при каждом изменении значения
vetoable { _, old, new -> ... }Можно запретить изменение, возвращая true/false
Delegates.notNull<T>()Обязательная инициализация до первого доступа
by mapДелегирование значений из Map по ключам (например, JSON/Bundle/Map)
by another objectДелегирование методов целиком (интерфейсное делегирование)

Опубликовано

в

,

от

Метки: