Junior — Middle
Pode explicar o conceito de delegação em Kotlin e seu uso?
sobes.tech IA
Resposta da IA
No Kotlin, a delegação é um mecanismo que permite transferir a implementação de uma interface ou propriedade específica para outro objeto, em vez de implementá-la diretamente na classe.
Principais tipos de delegação:
- Delegação de interface — a classe implementa uma interface, mas na verdade chama os métodos de outro objeto:
interface Base {
fun print()
}
class BaseImpl(val x: Int) : Base {
override fun print() { println(x) }
}
class Derived(b: Base) : Base by b
fun main() {
val b = BaseImpl(10)
Derived(b).print() // Vai imprimir 10
}
- Delegação de propriedades — permite sobrescrever o comportamento de getters e setters usando delegados especiais, como
lazy,observableou próprios:
val lazyValue: String by lazy {
println("Cálculo do valor")
"Olá"
}
O uso de delegação ajuda a reduzir a duplicação de código, aumentar a flexibilidade e a reutilização de componentes.