Junior — Middle
Podes explicar o conceito de delegação na linguagem Kotlin e sua aplicação?
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. Isso ajuda a evitar duplicação de código e simplifica a composição.
O exemplo mais comum é a delegação de propriedades usando a palavra-chave by.
Exemplo de delegação de propriedade:
class User {
var name: String por Delegates.observable("") { prop, old, new ->
println("A propriedade ${prop.name} mudou de $old para $new")
}
}
Também é possível delegar a implementação de uma interface:
interface Printer {
fun print()
}
class RealPrinter : Printer {
override fun print() {
println("Impressão do documento")
}
}
class Manager(printer: Printer) : Printer by printer
fun main() {
val realPrinter = RealPrinter()
val manager = Manager(realPrinter)
manager.print() // a chamada é delegada ao realPrinter
}
Essa abordagem permite dividir responsabilidades e reutilizar código sem herança.