Dispatch multiple

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 12 août 2018 à 17:17 et modifiée en dernier par Framawiki (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

Le dispatch multiple est une fonctionnalité de certains langages orientés objet ou langages fonctionnels dans lesquels une fonction ou une méthode peut être spécialisée pour plus d'un de ses paramètres formels. On l'appelle alors multiméthode.

Exemples

Dans les langages comme Java qui ne peuvent avoir un dispatch que sur un seul argument, on utilise le patron de conception visiteur. En C++, l'utilisation conjointe du patron de conception visiteur et du mécanisme de template permet d'obtenir un dispatch sur plusieurs arguments[1].

Python quant à lui nécessite d'importer le module multimethods.py[2].

Common Lisp

Soit la multiméthode collision-avec :

 (defmethod collision-avec ((x asteroide) (y asteroide))
   ;; cas où un astéroïde frappe un astéroïde
   )
 (defmethod collision-avec ((x asteroide) (y vaisseau))
   ;; cas où un astéroïde frappe un vaisseau spatial
   )
 (defmethod collision-avec ((x vaisseau) (y asteroide))
   ;; cas où un vaisseau spatial frappe un astéroïde
   )
 (defmethod collision-avec ((x vaisseau) (y vaisseau))
   ;; cas où un vaisseau spatial frappe un vaisseau spatial
   )

Notes et références

Voir aussi

Sur les autres projets Wikimedia :