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

Slides:



Advertisements
Ähnliche Präsentationen
Einer der Dienste im Internet
Advertisements

Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
Nachtrag zum Vortrag vom Vorbereitung zur Datensicherung
Objektorientierte Programmierung
Harald Köbler Software Design Patterns Prototype.
Rollenbasierter Entwurf am Beispiel eines benutzeradaptierbaren Hyperbooks Institut für Informatik Rechnergestützte Wissensverarbeitung Universität Hannover.
Von David Keß, Heinrich Wölk, Daniel Hauck
Heute zählt Der Umgang mit meinem persönlichen Wachstum.
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
Freie Universität Berlin Institut für Informatik
Design Patterns- Entwurfsmuster
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Nutzung und Bedeutung von Business Intelligence und Business Intelligence Methoden und -Werkzeugen Durch die Analyse des BI mit dem Fokus der Managementunterstützung.
Content-Entwicklung mit Design Patterns
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Deklaratives Debugging (Seminar Software Engineering) Tim Sender Deklaratives Debugging Seminar Software Engineering.
Sebastian Grahn Sebastian Kühn
Das Strukturmuster Kompositum von C. Günther, T. Hammerschmidt und D. Kuhn.
MVC – ein Architekturmuster
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Folie 1 Christian Pfeffer Carsten Walther Fernstudium Informatik Matrikel LABORPRAKTIKUM- SOMMERSEMESTER 2005 Umsetzung von Pattern Muster: DECORATOR.
Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral.
Dependents, Publish-Subscribe, Listener
Entwurfsmuster EDV Entwurfsmuster.
Buch S70ff (Informatik I, Oldenbourg-Verlag)
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Gymnasium Horn – Bad Meinberg
Übungen zur Vorlesung Stochastik und ihre Didaktik
Grundkurs Informatik Jahrgang 10 Der Grundkurs der Jahrgangsstufe 10 bereitet den an den Vorgaben für das Zentralabitur ausgerichteten Unterricht in der.
Seminar Softwaretechnik Dipl.-Inform. Susanne Jucknath-John
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
8. Vorlesung: Klassendiagramm für Fallbeispiel
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Konzepte der objektorientierten Programmierung
Limited Local Search And Restart Nähere Betrachtungen.
UML-Kurzüberblick Peter Brusten.
Wasserfallmodell und Einzelbegriffe
Testtechniken-Praktikum WS 2005/06 1 Testen mit Mock- Objekten Andreas Höfer Dr. Matthias Müller.
Java Programmierung.
EPROG Tutorium #4 Philipp Effenberger
PHP: Operatoren und Kontrollstrukturen
Software Design Patterns
EcoQuest1: Nachhaltig Kaffeekochen
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Entwurfsmuster (Design Pattern)
Laborpraktikum Umsetzung von Pattern SS 05 Prof. Paul, Dipl.-Inf. Fröhlich, Dipl.-Inf. Linke {paul | iti.cs.uni-magdeburg.de
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Folie 1 Jan-Peter Schmidt Matthias Teske -Fernstudium Informatik- -Matrikel LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster:
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
Dieser Vortrag wird gesponsort von:
Zitat-management-System Meilenstein 1
Objektorientierte (OO) Programmierung
Strategy Pattern Teachlet Der nächste Auftrag Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006.
242/102/49 0/51/59 181/172/166 Primary colors 248/152/29 PMS 172 PMS 137 PMS 546 PMS /206/ /227/ /129/123 Secondary colors 114/181/204.
1: Selektionssystem starten 3: 1 – 99 eingeben 6 : 1. Kriterium wird angezeigt 2: Anzahl Eigenverträge wählen 4: alle Sparten wählen 5: übernehmen So.
verkettete Strukturen
 Präsentation transkript:

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

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

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.

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…

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

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

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!

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)

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

Zurück an die Arbeit…

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

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

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.

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.

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

Diskussion

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