Введение в делегирование в Kotlin
Делегирование в Kotlin - способ не копировать готовый код в каждый класс, а передать часть работы другому объекту. Снаружи вызов идет к вашему типу, а выполняется метод объекта-исполнителя. В объявлении класса это явная передача интерфейса, а у свойства - делегат, который читает и записывает значение.
Первый сценарий - делегирование интерфейса. Класс
объявляет : SomeInterface by helper: все методы
интерфейса, которые вы не переопределили, уходят
в объект helper. Второй сценарий - делегаты
свойств: после имени свойства пишут by
и объект, который читает или записывает значение
вместо поля в памяти - lazy, observable,
карта ключей или свой класс-делегат.
Оба приёма решают задачу переиспользования поведения без множественного наследования классов. В коде видно, какой объект несёт реализацию.
Дальше раздел пройдёт от делегирования в классе
и интерфейсе к ключевому слову by, переопределению
отдельных методов и стандартным делегатам свойств.