Sobes.tech
Junior — Middle

Quelle est la différence entre la dispatch statique et dynamique en programmation?

sobes.tech IA

Réponse de l'IA

La dispatch statique (délégation statique) se produit lors de la compilation. Le compilateur sait à l'avance quelle méthode sera appelée et lie directement l'appel à une implémentation spécifique. Cela garantit de hautes performances, mais réduit la flexibilité.

La dispatch dynamique (délégation dynamique) se produit lors de l'exécution du programme. L'appel de méthode est déterminé par le type de l'objet à l'exécution, ce qui permet d'implémenter le polymorphisme et la redéfinition des méthodes. Sur iOS, cela est souvent réalisé via le mécanisme runtime d'Objective-C, où les appels de méthodes passent par une table de messages.

Exemple en Swift:

class Animal {
    func sound() {
        print("Un son")
    }
}

class Dog: Animal {
    override func sound() {
        print("Aboyer")
    }
}

let animal: Animal = Dog()
animal.sound() // Affichera "Aboyer" grâce à la dispatch dynamique

Ici, l'appel à sound() est déterminé lors de l'exécution, ce qui est une dispatch dynamique.