Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Strategy Pattern Teachlet Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006.

Ähnliche Präsentationen


Präsentation zum Thema: "Strategy Pattern Teachlet Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006."—  Präsentation transkript:

1 Strategy Pattern Teachlet Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006

2 Agenda 1. Das Szenario 2. Das Ausgangssystem 3. Das Strategiemuster 4. Die Aufgabe 5. Rückblick Anwendbarkeit Vor- und Nachteile

3 1. Das Szenario Ihr seid begeisterte Mitarbeiter des noch jungen Softwarehauses D-220 GmbH. Von einem Kunden, der A.S. Company, ist vor kurzem ein dringender Auftrag eingegangen. Euer Chef hat Euch mit der Aufgabe betraut, diesen Auftrag zu übernehmen.

4 1. Das Szenario Der Kunde benötigt ein simples Tool zum Export von tabularen Daten in verschiedene Formate. Eine erste bereits lauffähige Version wurde Euch vom Kunden für die Weiterentwicklung zur Verfügung gestellt…

5 2. Das Ausgangssystem Die vorliegende Version des ExportTools ermöglicht den Export tabularer Daten in ein CSV-Format.

6 2. Das Ausgangssystem ExportTool _exportOptions: JComboBox _output: JTextArea _input: JTable doExport() Klassendiagramm:

7 Der Lehrgang Da die A.S. Company ein sehr gut zahlender Kunde ist, möchte Euer Chef natürlich, dass Ihr eine qualitativ hochwertige Lösung erarbeitet. Aus diesem Grund sollt Ihr an einem Lehrgang zu dem Entwurfsmuster „Strategie“ teilnehmen!

8 3. Das Strategiemuster Zweck: Definiere eine Familie von Algorithmen, kapsele jeden einzelnen und mache sie austauschbar. Das Strategiemuster ermöglicht es den Algorithmus unabhängig von ihn nutzenden Kontexten zu variieren. (Gamma, Helm, Johnson, Vlissides, 2004)

9 3. Das Strategiemuster Kontext KontextSchnittstelle() Klient > Strategie AlgorithmusSchnittstelle() KonkreteStrategieB AlgorithmusSchnittstelle() KonkreteStrategieA AlgorithmusSchnittstelle()

10 Zurück an die Arbeit…

11 4. Die Aufgabe Das ExportTool soll nun um folgende Export-Formate erweitert werden: Tabulator-getrennte Dateien HTML-Tabelle Setzt dazu das Strategiemuster ein!

12 5. Rückblick Klassendiagramm des Zielsystems: ExportTool _exportOptions: JComboBox _output: JTextArea _input: JTable doExport() > TableExporter export(m: TableModel): String TableExporterHTML export(m: TableModel): String TableExporterTab export(m: TableModel): String TableExporterCSV export(m: TableModel): String

13 Anwendbarkeit Wenn sich viele verwandte Klassen nur in ihrem Verhalten unterscheiden. Wenn unterschiedliche Varianten eines Algorithmus benötigt werden. Wenn ein Algorithmus Daten verwendet, die dem Kontext nicht bekannt sein sollen. Wenn eine Klasse unterschiedliche Verhaltensweisen definiert und diese als mehrfache Bedingungsanweisungen in ihren Operationen erscheint.

14 Vorteile Alternative zur Unterklassenbildung: Algorithmen nicht mehr fest im Kontext codiert Reduziert die Komplexität Einfacher wartbar Algorithmen können unabhängig vom Kontext variiert werden (Einfaches Hinzugefügen, Verändern und Austauschen von Algorithmen) Es wird eine Familie von Algorithmen definiert. Strategien entfernen Bedingungsanweisungen und verbessern damit auch die Wiederverwendbarkeit.

15 Nachteile Klienten müssen die unterschiedlichen Strategien kennen Die Strategieschnittstelle wird von allen KonkreteStrategie-Objekten geteilt. Einige der konkreten Strategien benutzen evtl nicht alle oder gar keine der vom Kontext übergebenen Parameter Erhöhte Anzahl von Objekten

16 Diskussion

17 Quellenverzeichnis Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John: Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software / Dirk Riehle. 1. Auflage. München : Addison Wesley Verlag, 2004. – ISBN 0-201-63361-2


Herunterladen ppt "Strategy Pattern Teachlet Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006."

Ähnliche Präsentationen


Google-Anzeigen