Junior — Middle
El tudná magyarázni a delegálás fogalmát Kotlinben és annak használatát?
sobes.tech MI
Válasz az MI-től
Kotlinban a delegáció egy olyan mechanizmus, amely lehetővé teszi egy adott interfész vagy tulajdonság megvalósításának átruházását egy másik objektumra, ahelyett, hogy közvetlenül a osztályban valósítanánk meg.
A delegáció fő típusai:
- Interfész delegáció — az osztály megvalósít egy interfészt, de valójában egy másik objektum metódusait hívja:
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() // Kiírja 10
}
- Tulajdonság delegáció — lehetővé teszi a getterek és setterek viselkedésének felülírását speciális delegáltak segítségével, például
lazy,observablevagy sajátok:
val lazyValue: String by lazy {
println("Érték számítása")
"Helló"
}
A delegáció használata segít csökkenteni a kód ismétlődését, növeli a rugalmasságot és az összetevők újrahasznosítását.