Junior — Middle
Poți explica conceptul de delegare în limbajul Kotlin și aplicarea sa?
sobes.tech AI
Răspuns de la AI
În Kotlin, delegarea este un mecanism care permite transferul implementării unei anumite interfețe sau proprietăți către un alt obiect, în loc să o implementeze direct în clasă. Acest lucru ajută la evitarea duplicării codului și simplifică compoziția.
Cel mai comun exemplu este delegarea proprietăților folosind cuvântul cheie by.
Exemplu de delegare a proprietății:
class User {
var name: String de Delegates.observable("") { prop, old, new ->
println("Proprietatea ${prop.name} s-a schimbat de la $old la $new")
}
}
De asemenea, se poate delega implementarea unei interfețe:
interface Printer {
fun print()
}
class RealPrinter : Printer {
override fun print() {
println("Imprimarea documentului")
}
}
class Manager(printer: Printer) : Printer by printer
fun main() {
val realPrinter = RealPrinter()
val manager = Manager(realPrinter)
manager.print() // apelul este delegat către realPrinter
}
Această abordare permite separarea responsabilităților și reutilizarea codului fără moștenire.