Motif commande vs. Motif visiteur
-
27-09-2019 - |
Question
Est-il acceptable pour permettre un visiteur de modifier l'état du récepteur, ou devrait-il être un modèle de commande à la place?
La solution
Le but du motif de visiteur est de permettre à de nouvelles opérations à ajouter à une classe sans heirarchy modification de ce heirarchy. Je ne l'ai jamais vu quelqu'un ce qui suggère que sont acceptables les opérations en lecture seule uniquement. La seule limitation est que les opérations ajoutées ne devraient utiliser l'interface publique de la classe heirarchy.
Autres conseils
Je ne pense pas que vous pouvez faire une déclaration générale que ce soit bon ou mauvais de modifier l'état de quoi que ce soit. Je pense qu'il est autorisé à modifier les états tant qu'il ne porte pas atteinte à la logique elle-même visite. Par exemple, vous pourriez écrire un visiteur que les visites tous les fichiers sous structure de dossiers et renomme le nom du fichier en majuscules.
L'exemple de Microsoft d'un visiteur modifiant le récepteur est le
Chaque modèle a ses propres avantages, les inconvénients et les cas d'utilisation. Vous pouvez utiliser motif Dissocier l'invocateur et le récepteur de commande Mettre en œuvre callback mécanisme Mettre en œuvre défont et refont fonctionnalité Maintenir historique des commandes Utilisez motif Related posts: Command
à
Visitor
en dessous des scénarios: