Das Kefk Network Wiki befindet sich im Testbetrieb.
Zuständigkeitskette
Aus Kefk.
Die Zuständigkeitskette (engl. Chain of Responsibility) ist ein in der Softwareentwicklung eingesetztes Entwurfsmuster und wird für Algorithmen verwendet. Es gehört zur Kategorie der Verhaltensmuster (Behavorial Patterns). Das Muster ist eines der sogenannten GoF-Muster (siehe Viererbande, Gang of Four).
Inhaltsverzeichnis |
Verwendung
Mehrere Objekte werden hinereinander geschaltet ("verkettet"), um gemeinsam eine eingehende Anfrage bearbeiten zu können. Diese Anfrage wird an der Kette entlang geleitet, bis eines der Objekte die Anfrage beantworten kann. Der Klient, von dem die Anfrage ausgeht, hat dabei keine Kenntnis darüber, von welchem Objekt die Anfrage beantwortet werden wird.
UML-Diagramm
Akteure
- Bearbeiter: Definiert ein Interface für die Anfragen.
- KonkreterBearbeiter: Bearbeitet alle Anfragen, für die er selbst zuständig ist und leitet alle anderen an das nächste Kettenglied (den nächsten Bearbeiter) weiter.
- Klient: Initiiert die Anfrage an irgendeinem Objekt vom Typ KonkreterBearbeiter.
Vorteile
- Der Klient muss den tatsächlich zuständigen Bearbeiter nicht kennen. Selbst die Kettenglieder müssen nur ihren direkten Nachfolger und nicht den Gesamt-Aufbau der Kette kennen. Dies führt zu einer geringeren Kopplung.
- Die Zuständigkeit von Objekten für bestimmte Anfragen kann verändert werden, ohne dass potentielle Klienten davon in Kenntnis gesetzt werden müssen.
Nachteile
- Es gibt keine Garantie, dass die Anfrage tatsächlich bearbeitet wird. Wenn das letzte Glied der Kette eine Anfrage erhält, für die es ebenfalls nicht zuständig ist, wird die Anfrage nach obigem Pattern verworfen. Dies muss durch entsprechende Design-Überlegungen (Ausnahmebehandlung) verhindert werden.
Verwandte Entwurfsmuster
- Dekorierer: Vor oder nach der Weiterleitung einer Anfrage können zusätzliche Operationen erfolgen, wie zum Beispiel Gültigkeitsprüfungen.
- Kompositum: Hier wird die Anfrage so lange vom Child zum Parent weitergereicht, bis sie beantwortet wird oder kein weiteres Objekt folgt.
Erzeugungsmuster: Fabrikmethode | Abstrakte Fabrik | Erbauer | Prototyp | Einzelstück
Strukturmuster: Adapter | Adapter | Brücke | Kompositum | Dekorierer | Fassade | Fliegengewicht | Stellvertreter
Verhaltensmuster: Interpreter | Schablonenmethode | Zuständigkeitskette | Kommando | Iterator | Vermittler | Memento | Beobachter | Zustand | Strategie | Besucher | Plugin
(Klassenmuster sind kursiv dargestellt)
| Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Zust%C3%A4ndigkeitskette, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation. |
| Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Zust%C3%A4ndigkeitskette, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation. |
