Junior — Middle
Kun je het concept van delegatie in de Kotlin-taal en de toepassing ervan uitleggen?
sobes.tech AI
Antwoord van AI
In Kotlin is delegatie een mechanisme waarmee de implementatie van een bepaalde interface of eigenschap wordt overgedragen aan een ander object, in plaats van deze direct in de klasse te implementeren. Dit helpt duplicatie van code te voorkomen en vereenvoudigt de compositie.
Het meest voorkomende voorbeeld is de delegatie van eigenschappen met behulp van het sleutelwoord by.
Voorbeeld van eigenschapdelegatie:
class User {
var name: String door Delegates.observable("") { prop, oud, nieuw ->
println("Eigenschap ${prop.name} is veranderd van $oud naar $nieuw")
}
}
Het is ook mogelijk om de implementatie van een interface te delegeren:
interface Printer {
fun print()
}
class RealPrinter : Printer {
override fun print() {
println("Document afdrukken")
}
}
class Manager(printer: Printer) : Printer by printer
fun main() {
val realPrinter = RealPrinter()
val manager = Manager(realPrinter)
manager.print() // de aanroep wordt gedelegeerd aan realPrinter
}
Deze aanpak maakt het mogelijk om verantwoordelijkheden te scheiden en code herbruikbaar te maken zonder erfelijkheid.