Работал ли с делегатами

«Работал ли с делегатами» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал. Делегаты (Delegates) в Android часто используются для обратных вызовов (callbacks). Например, в RecyclerView.Adapter для обработки кликов по элементам списка.

Пример:

interface ItemClickListener {
    fun onItemClick(position: Int)
}

class MyAdapter(private val listener: ItemClickListener) : RecyclerView.Adapter<MyViewHolder>() {
    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        holder.itemView.setOnClickListener {
            listener.onItemClick(position)
        }
    }
}

// Использование:
adapter = MyAdapter(object : ItemClickListener {
    override fun onItemClick(position: Int) {
        // Обработка клика
    }
})

Делегаты также используются в Kotlin через by (например, lazy, observable).