Junior — Middle
Môžeš vysvetliť koncept delegovania v jazyku Kotlin a jeho použitie?
sobes.tech AI
Odpoveď od AI
V Kotlinu je delegácia mechanizmus, ktorý umožňuje preniesť implementáciu určitého rozhrania alebo vlastnosti na iný objekt namiesto priamej implementácie v triede. To pomáha predísť duplikácii kódu a zjednodušuje skladanie.
Najbežnejším príkladom je delegácia vlastností pomocou kľúčového slova by.
Príklad delegácie vlastnosti:
class User {
var name: String by Delegates.observable("") { prop, old, new ->
println("Vlastnosť ${prop.name} sa zmenila z $old na $new")
}
}
Tiež je možné delegovať implementáciu rozhrania:
interface Printer {
fun print()
}
class RealPrinter : Printer {
override fun print() {
println("Tlač dokumentu")
}
}
class Manager(printer: Printer) : Printer by printer
fun main() {
val realPrinter = RealPrinter()
val manager = Manager(realPrinter)
manager.print() // volanie je delegované na realPrinter
}
Tento prístup umožňuje rozdelenie zodpovedností a opätovné použitie kódu bez dedičnosti.