2010-09-15 4 views

Antwort

8

Ich denke im Allgemeinen an den Decorator als "Hinzufügen" zu etwas, wo als Chain of Responsiblity ist mehr wie etwas etwas zu behandeln.

Im Vergleich der beiden Muster (außer Äpfel und Orangen) ist der größte Unterschied die Kette der Verantwortung kann die Kette an jedem Punkt zu töten.

Denken Sie an Dekorateure als eine geschichtete Einheit, in der jede Schicht immer Pre/Post-Verarbeitung. Chain of Responsibility ist mehr wie eine verkettete Liste, und im Allgemeinen behandelt eine Sache die Verarbeitung.

Das "Chain of Responsibility" -Muster ermöglicht die Verarbeitung mehrerer Ereignisse durch mehrere Dinge, bietet ihnen aber auch die Möglichkeit, die Kette zu jedem Zeitpunkt zu beenden.

+0

Kannst du mir irgendein Szenario geben in welchen Situationen für Kette der Verantwortung oder Dekorateur gehen ...? –

+0

@Mind: Wie Nix sagte, Äpfel und Orangen. Schreib stattdessen was du tun sollst und wir können dir von dort helfen. – Marcus

5

Szenario:

Denken Sie an eine Serviceanfrage (in der Regel Admin Zugang zu Ihrem Laptop), die von Ihrem Manager Director und VP genehmigt werden muss. In diesem Fall würde das Dekorationsmuster so tun, als ob auf jeder Ebene nur Kommentare von jedem von ihnen wären und schließlich würden Sie eine Ausgabe erhalten. Der Manager würde also "Genehmigt und weitergeleitet", "Simplely Director", "Ok genehmigt und weitergeleitet" und schließlich "VP genehmigt" sagen. Und Ihre endgültige Ausgabe wäre die Kombination aller 3 Kommentare.

Hinweis: Die Kette wird nicht brechen, egal, ob Ihre Anfrage genehmigt oder abgelehnt wurde.

In der Kette der Verantwortung, in jeder Phase hat die einzelne Person die Berechtigung zu genehmigen oder abzulehnen. Und wenn die Anfrage auf irgendeiner Ebene abgelehnt wird, geht Ihre Anfrage nicht zur nächsten Ebene, sondern endet nur mit dem Ergebnis. Hoffe, das hilft :)