Back to questions
Junior — Middle
66
Какие типы делегатов для интерфейсов ты знаешь и применяешь в практике?
Answer from AI
sobes.tech AI
В Android-разработке для реализации делегирования интерфейсов часто применяются следующие типы делегатов:
-
Анонимные классы — классический способ, когда интерфейс реализуется прямо в месте использования. Удобно для одноразовых обработчиков.
-
Лямбда-выражения (начиная с Java 8 и в Kotlin) — более компактный и читаемый способ реализации интерфейсов с одним методом (функциональных интерфейсов).
-
Классические делегаты в Kotlin — с помощью ключевого слова
byможно делегировать реализацию интерфейса другому объекту, что упрощает код и повышает повторное использование.
Пример делегирования интерфейса в Kotlin:
interface ClickListener {
fun onClick()
}
class ButtonClickHandler : ClickListener {
override fun onClick() {
println("Button clicked")
}
}
class MyActivity(clickListener: ClickListener) : ClickListener by clickListener {
// MyActivity делегирует реализацию ClickListener объекту clickListener
}
fun main() {
val handler = ButtonClickHandler()
val activity = MyActivity(handler)
activity.onClick() // Выведет: Button clicked
}
Такой подход помогает разделять ответственность и упрощает поддержку кода.