Junior — Middle
El tudnád magyarázni a delegálás fogalmát a Kotlin nyelvben és annak alkalmazását?
sobes.tech MI
Válasz az MI-től
Kotlinban a delegálás egy olyan mechanizmus, amely lehetővé teszi egy adott interfész vagy tulajdonság implementációjának átadását egy másik objektumnak, ahelyett, hogy közvetlenül a osztályban valósítanánk meg. Ez segít elkerülni a kódduplikációt és egyszerűsíti a kompozíciót.
A leggyakoribb példa a tulajdonságok delegálása a by kulcsszó segítségével.
Tulajdonság delegálásának példája:
class User {
var name: String by Delegates.observable("") { prop, old, new ->
println("A ${prop.name} tulajdonság változott $old-ról $new-ra")
}
}
Szintén delegálható egy interfész megvalósítása:
interface Printer {
fun print()
}
class RealPrinter : Printer {
override fun print() {
println("Dokumentum nyomtatása")
}
}
class Manager(printer: Printer) : Printer by printer
fun main() {
val realPrinter = RealPrinter()
val manager = Manager(realPrinter)
manager.print() // a hívás a realPrinter-re delegálódik
}
Ez a megközelítés lehetővé teszi a felelősségek szétválasztását és a kód újrahasznosítását öröklődés nélkül.