Comment le modèle de chaîne de responsabilité diffère-t-il du modèle de décorateur?Motifs de conception Chaîne de responsabilité Vs Decorator
Répondre
Je pense généralement que le décorateur est "ajoutant" à quelque chose, où la chaîne de responsabilité est plus comme la manipulation de quelque chose. En comparant les deux modèles (en plus d'être des pommes et des oranges), la plus grande différence est que la chaîne de responsabilité peut tuer la chaîne à tout moment. Pensez aux décorateurs comme une unité en couches dans laquelle chaque couche effectue toujours un pré/post-traitement. Chaîne de responsabilité est plus comme une liste liée, et généralement une chose gère le traitement. Le modèle de chaîne de responsabilité permet de gérer plusieurs événements, mais il leur donne également la possibilité de terminer la chaîne à n'importe quel moment.
Pouvez-vous me donner un scénario dans quelles situations vont pour Chain of Responsibility ou Decorator ...? –
@Mind: Comme Nix a dit, les pommes et les oranges. Au lieu de cela, écrivez ce que vous êtes censé faire et nous pouvons vous aider à partir de là. – Marcus
Scénario:
Pensez à une demande de service (généralement d'accès administrateur à votre ordinateur portable), qui doit être approuvé par votre gestionnaire, directeur et vice-président. Dans ce cas, le motif Décorateur agirait comme si à chaque niveau il y aurait juste des commentaires de chacun d'entre eux et finalement vous obtiendriez une sortie. Ainsi, le gestionnaire dirait «Approuvé et transmis», Simlarly Directeur «Ok Approuvé et transmis» et enfin VP «Approuvé». Et votre résultat final serait la combinaison de tous les 3 commentaires.
Remarque: la chaîne ne va pas se casser, peu importe si votre demande a été approuvée ou refusée.
Dans la chaîne de responsabilité, à chaque étape, la personne individuelle a le pouvoir d'approuver ou de rejeter. Et si à n'importe quel niveau la demande est rejetée, alors votre requête ne passe pas au niveau suivant, elle se termine juste avec le résultat. Espérons que cela aide :)
- 1. motif de conception de la chaîne de responsabilité - regd
- 2. Catégories de motifs de conception
- 3. Scala Catalogue de motifs de conception fonctionnelle
- 4. Au-delà des motifs de conception?
- 5. Motifs de conception pour la programmation simultanée?
- 6. Aide à la conception de motifs
- 7. C# Chaîne de responsabilité avec les délégués
- 8. Gestionnaire de chaîne de responsabilité avec les génériques Java
- 9. Programmation de motifs de conception: Façade ou non?
- 10. Motifs de conception Recommandation pour l'option de filtrage
- 11. Motifs et sous-classes de conception de façade
- 12. Problèmes de chaîne de responsabilité et alias_method dans Ruby
- 13. Les événements wpf et le modèle de chaîne de responsabilité
- 14. Application de motifs à la conception de l'interface utilisateur, pas seulement la conception de l'application
- 15. GUI: Vue découplée et motifs de conception pour RIA
- 16. Extraits/exemples pour des motifs de conception rubyish pratiques?
- 17. Base de données de responsabilité
- 18. Exemples de motifs C# GOF
- 19. Motifs: Motif de cohésion élevé
- 20. Principe de responsabilité unique et Sharepoint WebParts
- 21. Utilisation de caractères alphabétiques dans la chaîne de motifs SimpleDateFormat
- 22. décomposer une chaîne en motifs connus
- 23. Conception de cas de test et responsabilité des testeurs, développeurs, clients
- 24. Chaîne de concaténation VS format de chaîne
- 25. AS3/Flex Decorator Pattern
- 26. Zend Form Element Decorator
- 27. F #: Composition de motifs?
- 28. Problème de correspondance de motifs en C#
- 29. VoirModèle vs modèle qui a la responsabilité de communiquer avec la couche de gestion?
- 30. Numéros de correspondance de motifs/opérateurs
La discussion similaire peut être trouvé ici: http://stackoverflow.com/questions/747913/why-would-i-ever-use-a-chain-of-responsibility-over-a -decorator – hoymkot