Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar Entwurfsmuster Chain of Responsibility Zuständigkeitskette SS 2003 Stand 18.06.2003 Referent: Daniel Webelsiep Korreferenten Prof. Dr. Burkhardt.

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Entwurfsmuster Chain of Responsibility Zuständigkeitskette SS 2003 Stand 18.06.2003 Referent: Daniel Webelsiep Korreferenten Prof. Dr. Burkhardt."—  Präsentation transkript:

1 Seminar Entwurfsmuster Chain of Responsibility Zuständigkeitskette SS 2003 Stand Referent: Daniel Webelsiep Korreferenten Prof. Dr. Burkhardt Renz Prof. Dr. Wolfgang Henrich

2 Inhalt Seite 2 Seminar - EntwurfsmusterDaniel Webelsiep Chain of Responsibility an einem Beispiel Allgemeine Definition Adhoc-Programmierung Vertiefung der Zuständigkeitskette Nachrichtenkodierung Verschiedene Strukturen Implementierungsvarianten Konsequenzen Praxisbeispiele und Fazit

3 Chain of Responsibility Seite 3 Seminar - EntwurfsmusterDaniel Webelsiep zu deutsch: Zuständigkeitskette Entwurfsmuster Strukturmuster Erzeugungsmuster Verhaltensmuster Die Zuständigkeitskette gehört zur Gruppe der Verhaltensmuster Ist ein objektbasiertes Muster

4 Ein kurzes Beispiel (1) Seite 4 Seminar - EntwurfsmusterDaniel Webelsiep Beispiel eines kleinen Unternehmens Bearbeitung der Anfragen von Kunden Realisierung via Zuständigkeitskette

5 Ein kurzes Beispiel (2) Seite 5 Seminar - EntwurfsmusterDaniel Webelsiep Anfragen werden je nach Wichtigkeit von der einzelnen Person bearbeitet oder weitergeleitet Sehr wichtige Anfragen können nur vom Vorstand bearbeitet werden

6 Definitionen Seite 6 Seminar - EntwurfsmusterDaniel Webelsiep "Vermeide die Kopplung des Auslösers einer Anfrage mit seinem Empfänger, indem mehr als ein Objekt die Möglichkeit erhält, die Aufgabe zu erledigen. Verkette die empfangenden Objekte und leite die Anfrage an einer Kette entlang, bis ein Objekt sie erledigt." "Führe eine Kette in einem System ein, damit Nachrichten entweder dort behandelt werden, wo sie empfangen wurden oder an ein Objekt weiterleitet werden, welches die Nachricht bearbeiten kann." (Quelle: GoF) (Quelle: Applied Java Patterns)

7 Allgemeine Struktur Seite 7 Seminar - EntwurfsmusterDaniel Webelsiep Jeder Handler hat eine Bearbeitungsmethode und eine Verbindung zu seinem Nachfolger Handler als abstrakte Klasse Wegen fehlender Mehrfachverer- bung in C# kann ein Interface benutzt werden Link zum Nachfolger dann als Methode

8 Layoutänderung - Adhoc Seite 8 Seminar - EntwurfsmusterDaniel Webelsiep Feste Kopplung zwischen Sender und Empfänger einer Nachricht Keine Flexibilität zur Laufzeit Bei größeren Systemen unübersichtliche Verbindungen zwischen den Objekten Änderungen im Verhalten wirken sich auf viele Stellen im Quellcode aus Wartbarkeit und Wiederverwendung sind nicht gegeben Quelltext

9 Der Einsatz der CoR Seite 9 Seminar - EntwurfsmusterDaniel Webelsiep Einführung des Interfaces LayoutHandler mit definierter Bearbeitungsmethode, C# - Mehrfachvererbung Alle Klassen der Kette müssen das Interface implementieren

10 CoR zur Laufzeit Seite 10 Seminar - EntwurfsmusterDaniel Webelsiep Bearbeitung findet als Kette statt Lose Kopplung zwischen Sender und Empfänger Verhalten wird zur Laufzeit bestimmt Quelltext

11 Nachrichtenkodierung Seite 11 Seminar - EntwurfsmusterDaniel Webelsiep Verschiedene Implementierung der Aufgaben Definierte Bearbeitungsmethoden, für jede Aufgabe eine andere Methode => Unflexibel bei Änderungen Eine Methode mit Übergabeparameter, z.B. string Besser – Anfrageobjekte Definieren verschiedene Aufgabentypen Kodieren eine Nachricht

12 Verschiedene Strukturen (1) Seite 12 Seminar - EntwurfsmusterDaniel Webelsiep Zuständigkeitskette als Baum Benutzt die gegebene Struktur des GUIs Beispiel implemen- tiert die Baum- struktur teilweise

13 Verschiedene Strukturen (2) Seite 13 Seminar - EntwurfsmusterDaniel Webelsiep Alternative Implementierung als lineare Kette oder Ring Lineare Kette bietet größere Flexibilität, ist aber schwerer zu warten oder zu testen Als Ring muss die Behandlung des Abbruchs stärker bedacht werden Abwägen, welche Struktur man verwendet

14 Implementierungs-Varianten Implementierungs-Varianten Seite 14 Seminar - EntwurfsmusterDaniel Webelsiep Besondere Strategien zur Nachrichtenbehandlung Bearbeite direkt – Ist eine Nachricht nicht zur Weiter- leitung spezifiziert, bearbeite sie Leite weiter – Bearbeite eine Nachricht nur, wenn sie entsprechend gekennzeichnet ist Sende an den Standard-Bearbeiter – Jede Nachricht, die nicht bearbeitet werden kann, wird an einen Standard-Bearbeiter weitergeleitet Ignoriere im Normalfall – Ist eine Nachricht weder zur Bearbeitung noch zur Weiterleitung gekennzeichnet, beende die Kette

15 Konsequenzen Seite 15 Seminar - EntwurfsmusterDaniel Webelsiep Reduzierte Kopplung – Einfachere Objektstruktur, weil das Objekt den Bearbeiter nicht kennt. Die Struktur der Kette ist für die Objekte nicht relevant. Höhere Flexibilität – Zuständigkeiten können zur Laufzeit einfach geändert werden, indem Objekte gelöscht oder der Kette hinzugefügt werden. Keine Abarbeitungsgarantie – Da die Anfragen nur entlang der Kette weitergeleitet werden, kann nicht garantiert werden, dass eine Bearbeitung stattfindet. Besser wiederverwendbar und wartbar Schwieriger zu entwickeln und zu testen

16 Praxisbeispiele Seite 16 Seminar - EntwurfsmusterDaniel Webelsiep Wird am meisten bei der Nachrichtenbehandlung (Event-Handling) verwendet Im ET++ Framework für C++ nutzt die IDE die Zuständigkeitskette, um das GUI zu aktualisieren In Java werden viele Event-Handler als Kette eingesetzt, um eine Reihe von Objekten den Event bearbeiten zu lassen Die Nachrichtenschleifen in Windows verhält sich ebenfalls wie eine Zuständigkeitskette, wenn auch ohne Objektstruktur Anwendung recht selten

17 Fazit Seite 17 Seminar - EntwurfsmusterDaniel Webelsiep Entwurfsmuster sind erprobte Lösungen für wiederkehrende Softwareprobleme Effizienter und sicherer "gute" Software schreiben Handwerkszeug für jeden Softwareentwickler Chain of Responsibility verbessert Flexibilität, Erweiterbarkeit und Wiederverwendung von Software Entwicklung und Testen der Software wird schwieriger Nach Untersuchungen des Fraunhofer Instituts keine Performanceeinbußen durch die Zuständigkeitskette

18 Fragen? Seite 18 Seminar - EntwurfsmusterDaniel Webelsiep Danke für die Aufmerksamkeit!


Herunterladen ppt "Seminar Entwurfsmuster Chain of Responsibility Zuständigkeitskette SS 2003 Stand 18.06.2003 Referent: Daniel Webelsiep Korreferenten Prof. Dr. Burkhardt."

Ähnliche Präsentationen


Google-Anzeigen