2010-09-15 7 views

Répondre

8

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.

+0

Pouvez-vous me donner un scénario dans quelles situations vont pour Chain of Responsibility ou Decorator ...? –

+0

@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

5

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 :)

Questions connexes