Sobes.tech
Junior — Middle

Poți explica conceptul de delegare în limbajul Kotlin și aplicarea sa?

sobes.tech AI

Răspuns de la AI

În Kotlin, delegarea este un mecanism care permite transferul implementării unei anumite interfețe sau proprietăți către un alt obiect, în loc să o implementeze direct în clasă. Acest lucru ajută la evitarea duplicării codului și simplifică compoziția.

Cel mai comun exemplu este delegarea proprietăților folosind cuvântul cheie by.

Exemplu de delegare a proprietății:

class User {
    var name: String de Delegates.observable("") { prop, old, new ->
        println("Proprietatea ${prop.name} s-a schimbat de la $old la $new")
    }
}

De asemenea, se poate delega implementarea unei interfețe:

interface Printer {
    fun print()
}

class RealPrinter : Printer {
    override fun print() {
        println("Imprimarea documentului")
    }
}

class Manager(printer: Printer) : Printer by printer

fun main() {
    val realPrinter = RealPrinter()
    val manager = Manager(realPrinter)
    manager.print() // apelul este delegat către realPrinter
}

Această abordare permite separarea responsabilităților și reutilizarea codului fără moștenire.