« Patrons de conception/Double-dispatch » : différence entre les versions

m
<source> -> <syntaxhighlight> (phab:T237267)
(orthographe)
m (<source> -> <syntaxhighlight> (phab:T237267))
 
Exemple en Java :
<sourcesyntaxhighlight lang="java">
// Une classe Object comportant un attribut : le nom de l'objet
class Object
// référence de type Object mais objet de type SimpleObject
System.out.println(book.toString()); // SimpleObject.toString
</syntaxhighlight>
</source>
Affiche :
a simple book
 
Exemple en Java où il n'existe que le simple-dispatch :
<sourcesyntaxhighlight lang="java">
// NB: Les classes Object et SimpleObject de l'exemple précédent sont également
// utilisées ici. Voir l'exemple précédent pour leur code source.
Display disp = new SimpleDisplay();
disp.display(book, card); // -> SimpleDisplay.display(Object, Object)
</syntaxhighlight>
</source>
Affiche :
A simple display for object (a simple book) and object (a simple card)
L'exemple précédent démontre que le langage Java ne permet pas nativement le '''multiple-dispatch'''. Dans le cas contraire, la méthode <sourcesyntaxhighlight enclose="none" lang="java">SimpleDisplay.display(SimpleObject, SimpleObject)</sourcesyntaxhighlight> aurait été appelée et l'affichage aurait été le suivant :
A simple display for simple object (a simple book) and simple object (a simple card)
 
 
Exemple en Java :
<sourcesyntaxhighlight lang="java">
// Une classe Object comportant un attribut : le nom de l'objet
class Object
Display disp = new SimpleDisplay();
book.display(disp); // SimpleObject.display(Display) -> SimpleDisplay.display(SimpleObject)
</syntaxhighlight>
</source>
Affiche :
A simple display for simple object (a simple book)
1 535

modifications