Bonjour,
J'ai besoin de mettre en place une architecture qui m'oriente vers le design pattern Visitor (ie : ensemble de classes "noyau" et de nouvelles opérations à réaliser sur ces classes sans les polluer).
La question que je me pose est l'utilité de la méthode "Accept()" et du double dispatching dans ce cas?
Par exemple j'ai un ensemble de classes classe1, classe2, etc. sur lesquelles viendront agir les visiteurs Visitor1, Visitor2, etc.
Le livre du GOF propose une implémentation permettant d'utiliser le pattern ainsi :
Cette dernière ligne conduira à appeler une fonction "visit()" du visiteur qui fera le job.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 classe1* maclasse; visitor1 visitor; maclasse->accept(visitor);
Je me demande pourquoi ne procède t'on pas directement ainsi comme suit?
D'avance merci de m'éclairer. J'ai sans doute loupé quelque chose dans la logique du pattern et dans ses cas d'application.
Code : Sélectionner tout - Visualiser dans une fenêtre à part visitor.visit(maclasse);
Partager