Junior — Middle
Můžeš vysvětlit koncept delegování v jazyce Kotlin a jeho použití?
sobes.tech AI
Odpověď od AI
V Kotlinu je delegace mechanismus, který umožňuje předat implementaci určitého rozhraní nebo vlastnosti jinému objektu namísto jejího přímého implementování ve třídě. To pomáhá zabránit duplicitě kódu a zjednodušuje složení.
Nejčastějším příkladem je delegace vlastností pomocí klíčového slova by.
Příklad delegace vlastnosti:
class User {
var name: String by Delegates.observable("") { prop, old, new ->
println("Vlastnost ${prop.name} se změnila z $old na $new")
}
}
Také lze delegovat implementaci rozhraní:
interface Printer {
fun print()
}
class RealPrinter : Printer {
override fun print() {
println("Tisk dokumentu")
}
}
class Manager(printer: Printer) : Printer by printer
fun main() {
val realPrinter = RealPrinter()
val manager = Manager(realPrinter)
manager.print() // volání je delegováno na realPrinter
}
Tento přístup umožňuje rozdělit odpovědnosti a znovu použít kód bez dědičnosti.