Ответ
В Android часто используются делегаты для упрощения работы с интерфейсами. Вот основные:
- View.OnClickListener – обработка кликов:
button.setOnClickListener { view -> /* действие */ }
- RecyclerView.Adapter – делегаты для элементов списка:
val adapter = ListAdapter(delegate1, delegate2)
- ActivityResultContracts – обработка результатов:
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> }
- TextWatcher – отслеживание изменений текста:
editText.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {}
})
- LifecycleObserver – реакции на изменения жизненного цикла.
Делегаты помогают избежать boilerplate-кода, особенно с Kotlin's by. Например:
class MyActivity : AppCompatActivity(), OnClickListener by ClickListenerDelegate()