Junior — Middle
Czy możesz wyjaśnić koncepcję delegowania w Kotlinie i jej zastosowanie?
sobes.tech AI
Odpowiedź od AI
W Kotlinie delegacja to mechanizm, który pozwala przekazywać implementację określonego interfejsu lub właściwości innemu obiektowi, zamiast implementować ją bezpośrednio w klasie.
Główne rodzaje delegacji:
- Delegacja interfejsu — klasa implementuje interfejs, ale faktycznie wywołuje metody innego obiektu:
interface Base {
fun print()
}
class BaseImpl(val x: Int) : Base {
override fun print() { println(x) }
}
class Derived(b: Base) : Base by b
fun main() {
val b = BaseImpl(10)
Derived(b).print() // Wypisze 10
}
- Delegacja właściwości — pozwala nadpisywać zachowanie getterów i setterów za pomocą specjalnych delegatów, takich jak
lazy,observablelub własne:
val lazyValue: String by lazy {
println("Obliczanie wartości")
"Cześć"
}
Użycie delegacji pomaga zmniejszyć duplikację kodu, zwiększyć elastyczność i ponowne użycie komponentów.