Einsatz

Kategorie: Design Pattern Gang of Four

Eine Chain of Responsibility wird verwendet, wenn nicht eindeutig ist, welches Objekt eine Nachricht verarbeiten soll. Der Auslöser und der Verarbeiter einer Nachricht werden dabei entkoppelt. Es wird dabei eine Kette von Objekten durchlaufen, welche die Nachricht verarbeiten könnten. Die Nachricht wird solange weitergereicht, bis ein Objekt diese verarbeitet hat oder das Ende der Kette erreicht ist.

Beispiel

  • In einem Unternehmen gibt der Eigentümer eine Anweisung an eine Hauptabteilungsleiterin, dass eine bestimmte Aufgabe erledigt werden soll. Diese Hauptableitungsleiterin gibt die Anweisung ihrerseits wieder an eine Abteilungsleiteren weiter. Diese Weitergabe erfolgt solange bis eine Arbeiterin die Aufgabe erledigt. Der Eigentümer des Unternehmens weis dabei nicht wer die gestellte Aufgabe erledigt.

  • Die Ausnahmebehandlung (engl. Exception Handling) in Java ist ein guter Kandidat für eine chain of responsibility. Antatt jede Exception dort zu verarbeiten wo sie ensteht, kann diese an einer geeigneten "höheren" Position einheitlich verarbeitet werden. So können zum Beispiel in einem Modul verschiedene Exceptions auftreten (IOException, FileNotFoundException, ...). In einer Kette werden dann an zentraler Stelle die Bearbeiter (engl. Handler) solange durchlaufen, bis ein Bearbeiter für die entsprechende Ausnahme zuständig ist.
Pattern Links - itmapa.de

de.wikipedia.org
Zuständigkeitskette
http://de.wikipedia.org/wiki/Zust%C3%A4ndigkeitskette

Daniel Webelsiep
Seminar Entwurfsmuster - Chain of Responsibility (Zuständigkeitskette)
http://www.webelsiep.de/downloads/studium/projekte/cor.pdf