Sobes.tech
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:

  1. 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
}
  1. Delegação de propriedades — permite sobrescrever o comportamento de getters e setters usando delegados especiais, como lazy, observable ou 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.