Pourquoi aurais-je utiliser une Chaîne de Responsabilité de plus d'un Décorateur?

Je suis juste à lire sur le La chaîne de Responsabilité modèle et je vais avoir de la difficulté à imaginer un scénario où je préfère son utilisation plus que de décorateur.

Qu'en pensez-vous? Ne CoR avons une niche utiliser?

  • veuillez ajouter de la nature de la tâche à laquelle vous pensez est une tâche pour le Cdr, mais vous l'avez résolu avec le décorateur
  • Bien sûr, j'ai besoin de passer une commande et, dans certains cas, j'ai besoin d'imprimer un projet de loi. Mon décorateur solution est d'avoir un noyau OrderCompleter enveloppé dans un OrderCompletionPrintDecorator qui s'applique la logique conditionnelle et d'estampes. Fonctionne tout aussi bien que toute la chaîne.
  • Pourquoi ne pas juste avoir une méthode appelée "Imprimer" à l'intérieur de OrderCompleter qui peuvent être utilisés (ou pas) quand vous voulez (ne pas vouloir) à imprimer? En d'autres termes, je me demandais si vous pourriez résoudre cette tâche sans l'aide d'aucun motif? Il ne semble pas à moi comme une tâche compliquée, avec un besoin réel pour l'introduction de l'abstraction et de complexité. Ou peut-être ce que vous avez dit est juste une version simplifiée du problème.
  • Cela dépend - mais oui, c'est une version simplifiée. La question est, où est la logique vont sur ce qui en fait quelque chose d'impression? Si c'est une simple décision qu'elle pourrait aller à droite dans OrderCompleter.Complete() mais il pourrait être quelque chose comme ceci: "Si le service d'impression répond à une commande ping et cet ordre ou un parent de l'ordre n'a pas encore été imprimé et le client de la commande n'intègre pas directement avec notre système."
InformationsquelleAutor George Mauer | 2009-04-14