Sobes.tech
Junior — Middle

Pouvez-vous expliquer le concept de délégation dans le langage Kotlin et son application?

sobes.tech IA

Réponse de l'IA

En Kotlin, la délégation est un mécanisme qui permet de transférer l’implémentation d’une interface ou d’une propriété spécifique à un autre objet, au lieu de l’implémenter directement dans la classe. Cela aide à éviter la duplication de code et simplifie la composition.

L’exemple le plus courant est la délégation de propriétés à l’aide du mot-clé by.

Exemple de délégation de propriété :

class User {
    var name: String par Delegates.observable("") { prop, old, new ->
        println("La propriété ${prop.name} a changé de $old à $new")
    }
}

Il est également possible de déléguer l’implémentation d’une interface :

interface Printer {
    fun print()
}

class RealPrinter : Printer {
    override fun print() {
        println("Impression du document")
    }
}

class Manager(printer: Printer) : Printer by printer

fun main() {
    val realPrinter = RealPrinter()
    val manager = Manager(realPrinter)
    manager.print() // l’appel est délégué à realPrinter
}

Cette approche permet de diviser la responsabilité et de réutiliser le code sans héritage.