Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster
|
|
- Kasimir Färber
- vor 7 Jahren
- Abrufe
Transkript
1 Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster Tutorium 7 iloveswt.de Fabian I. Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
2 Übungsblatt 4 1 Debuggen 2 Benutztrelation image ist selbst kein Modul 3 GUI für Kantendetektoren schreiben Zeitpunkt von setvisible(true) wichtig, setjmenubar(...) vorher aufrufen 4 Klassendiagramm aus Text 5 Kovarianz, Überdecken Gibt es Überdeckung bei Methoden? Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
3 Übungsblatt 4 1 Debuggen 2 Benutztrelation image ist selbst kein Modul 3 GUI für Kantendetektoren schreiben Zeitpunkt von setvisible(true) wichtig, setjmenubar(...) vorher aufrufen 4 Klassendiagramm aus Text 5 Kovarianz, Überdecken Gibt es Überdeckung bei Methoden? Ja, aber nur wenn statisch Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
4 Übersicht 1 Entkopplungsmuster Adapter Beobachter Brücke Iterator Stellvertreter Vermittler 2 Variantenmuster Abstrakte Fabrik Besucher Fabrikmethode Kompositum Schablonenmethode Strategie Dekorierer 3 Zustandshandhabungs-Muster Einzelstück Fliegengewicht Memento Prototyp Zustand 4 Steuerungsmuster Befehl Master/Worker (Master/Slave) 5 Virtuelle Maschinen 6 Bequemlichkeitsmuster Bequemlichkeits-Klasse Bequemlichkeits-Methode Fassade Null-Objekt Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
5 Wiederholung Adapter Klient Ziel operation() adaptiertes Objekt AdaptierteKlasse spezifischeoperation() Klient Ziel operation() AdaptierteKlasse spezifischeoperation() könnte nur Schnittstelle sein. könnte nur Schnittstelle sein. Adapter Adapter operation() adaptiertesobjekt.spezifischeoperation() operation() spezifischeoperation() Adaptiert unpassende Schnittstelle Dient nicht der Bequemlichkeit Unterscheidung zwischen Objekt- und Klassenadapter Klient, Ziel, Adapter, AdaptierteKlasse, operation(), spezischeoperation() Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
6 Wiederholung Beobachter Subjekt meldean(:beobachter) meldeab(:beobachter) benachrichtige() beobachter Beobachter 1 * aktualisiere() für alle b in beobachter { b.aktualisiere() } KonkreterBeobachter KonkretesSubjekt subjektzustand gibzustand() setzezustand() subjekt return subjektzustand beobachterzustand aktualisiere() beobachterzustand = subjekt.gibzustand() Funktioniert nach Abonnenten-Prinzip Beobachter müssen sich bei zu beobachtendem Subjekt anmelden Subjekt, Beobachter, KonkretesSubjekt, KonkreterBeobachter, meldean(:beobachter), meldeab(:beobachter), benachrichtige(), aktualisiere(), subjektzustand, gibzustand(), setzezustand(), beobachterzustand, beobachter, subjekt Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
7 Wiederholung Vermittler Vermittler vermittler Kollege KonkreterVermittler KonkreterKollege1 KonkreterKollege2 Vermittelt komplexes Verhalten zwischen Objekten Macht Interaktion zwischen Objekten austauschbar Vermittler wird über Änderungen bei Kollegen ähnlich informiert wie Beobachter Vermittler, Kollege, KonkreterVermittler, KonkreterKollege1, KonkreterKollege2, vermittler Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
8 Übersicht Entkopplungsmuster Varianten: Sinn: Adapter Beobachter Brücke Iterator Stellvertreter Vermittler System in unabhängige Teile aufteilen Enthalten manchmal Kopplungsglied Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
9 Iterator Ermögliche Sequenziellen Zugriff auf die Elemente eines zusammengesetzten Objekts, ohne seine zugrundeliegende Repräsentation offenzulegen Synonyme Enumerator Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
10 Iterator Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
11 Beispiel Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
12 Aufgabe SS10 Fluglotse 1..* + berechneausweichkurse 1..* (k : Kurs) : Kurs[] beschäftigt Kurs * + gibfo() : Flugobjekt berechnet + gibflughöhe() : int sollkurs istkurs <<abstract>> Luftraumkontrolle + melde(k : Kurs) # nächster() : Fluglotse <<abstract>> Flugobjekt + änderekurs(k : Kurs) a) Orientieren Sie sich am Vermittler-Entwurfsmuster, um das Klassendiagramm um die Klassen Kontrollturm (eines Flughafens) sowie Helikopter und Passagierjet zu ergänzen. Geben Sie Multiplizitäten an, sofern diese ungleich 1 sind. Geben Sie für die Klassen Luftraumkontrolle, Flugobjekt, Kontrollturm, Helikopter und Passagierjet die jeweilige Rolle im Vermittler-Entwurfsmuster an. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
13 Musterlösung 1..* + berechneausweichkurse 1..* (k : Kurs) : Kurs[] beschäftigt Fluglotse Vermittler <<abstract>> Luftraumkontrolle + melde(k : Kurs) # nächster() : Fluglotse Kurs * + gibfo() : Flugobjekt berechnet + gibflughöhe() : int sollkurs istkurs Kollege <<abstract>> Flugobjekt * + änderekurs(k : Kurs) Kontrollturm Helikopter Passagierjet konkreter Vermittler konkreter Kollege Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
14 Aufgabe SS10 c) Bilden Sie das folgende Szenario als UML-Sequenzdiagramm ab. Beachten Sie bei Ihrer Modellierung die Informationen aus dem Klassendiagramm aus Aufgabenteil a). Ein Passagierjet p meldet seinen momentanen Kurs k p an den Kontrollturm. Der Kontrollturm beauftragt den nächsten freien Fluglotsen f zu berechnen, ob irgendwelche Flugobjekte ausweichen müssen. Der Fluglotse kommt zu dem Ergebnis, dass keine Kollisionsgefahr besteht und alle Flugobjekte ihren Kurs beibehalten können. Folglich antwortet er mit einem leeren Feld von Kursen. Anschließend meldet ein Helikopter h seinen Kurs k h an den Kontrollturm. Wieder ist der nächste verfügbare Fluglotse der Fluglotse f. Dieser berechnet unter Berücksichtigung von k h, ob nun Flugobjekte ausweichen müssen. Diesmal besteht eine Kollisionsgefahr zwischen dem Passagierjet und dem Helikopter. Deswegen antwortet der Fluglotse mit zwei Ausweichkursen k p und k h für den Passagierjet bzw. den Helikopter. Der Kontrollturm weist daraufhin den Passagierjet und den Helikopter an ihre Kurse auf den jeweiligen Ausweichkurs zu ändern. Hinweis: Modellieren Sie die Kurse nicht als Objekte mit Lebenslinie. Wenn Sie Kurse als Parameter/Rückgabewert benötigen, verwenden Sie die vorgegebenen Bezeichner aus dem Szenario. Zeichnen Sie zu jedem Methodenaufruf auch die Rückantwort ein. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
15 Musterlösung f:fluglotse :Kontrollturm p:passagierjet h:helikopter berechneausweichkurse(k p ) melde(k p ) nächster() f {} berechneausweichkurse(k h ) {k p, k h } nächster() f änderekurs(k p ) melde(k h ) änderekurs(k h ) Methodenaufruf mit Antwort: 8 0,5 P Benennung der Lebenslinien: 4 0,25 P aufgerundet auf nächsten halben Punkt Aktivtätsbalken fehlen selten: -0,5 P, oft/immer: -1 P Antworten fehlen selten: -0,5 P, oft/immer: -1 P Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
16 Aufgabe SS09 <<interface>> neu::form +zeichne() * 1 Zeichenprogramm 1 neu::linie <<uses>> neu::punkt <<create>> +Linie(von : Punkt, bis : Punkt) +zeichne() Zeichnet die Linie im Zeichenprogramm. <<create>> +Punkt(x : int, y : int) +gibx() : int +giby() : int <<interface>> alt::form +male() 1 -linie alt::linie <<create>> +Linie(x0 : int, y0 : int, x1 : int, y1 : int) +male() a) Welches Entwurfsmuster wird hier verwendet? Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
17 Aufgabe SS09 <<interface>> neu::form +zeichne() * 1 Zeichenprogramm 1 neu::linie <<uses>> neu::punkt <<create>> +Linie(von : Punkt, bis : Punkt) +zeichne() Zeichnet die Linie im Zeichenprogramm. <<create>> +Punkt(x : int, y : int) +gibx() : int +giby() : int <<interface>> alt::form +male() 1 -linie alt::linie <<create>> +Linie(x0 : int, y0 : int, x1 : int, y1 : int) +male() a) Welches Entwurfsmuster wird hier verwendet? (Objekt-)Adapter Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
18 Aufgabe SS09 <<interface>> neu::form * 1 Zeichenprogramm +zeichne() 1 neu::linie <<uses>> neu::punkt <<create>> +Linie(von : Punkt, bis : Punkt) +zeichne() Zeichnet die Linie im Zeichenprogramm. <<create>> +Punkt(x : int, y : int) +gibx() : int +giby() : int <<interface>> alt::form +male() 1 -linie alt::linie <<create>> +Linie(x0 : int, y0 : int, x1 : int, y1 : int) +male() b) Weisen Sie den Klassen und Methoden aus dem obigen Klassendiagramm ihre Entsprechungen im verwendeten Entwurfsmuster zu. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
19 Aufgabe Klient Ziel adaptiertes Objekt AdaptierteKlasse operation() spezifischeoperation() könnte nur Schnittstelle sein. Adapter operation() adaptiertesobjekt.spezifischeoperation() Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
20 Musterlösung <<interface>> neu::form * 1 Zeichenprogramm +zeichne() 1 neu::linie <<uses>> neu::punkt <<create>> +Linie(von : Punkt, bis : Punkt) +zeichne() <<create>> +Punkt(x : int, y : int) +gibx() : int +giby() : int Zeichnet die Linie im Zeichenprogramm. <<interface>> alt::form +male() alt::linie 1 -linie <<create>> +Linie(x0 : int, y0 : int, x1 : int, y1 : int) +male() Klasse/Methode Zeichenprogramm neu::linie alt::linie neu::form zeichne() male() Entsprechung Klient Adapter AdaptierteKlasse Ziel operation() spezifischeoperation() Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
21 Aufgabe SS09 <<interface>> neu::form * 1 Zeichenprogramm +zeichne() 1 neu::linie <<uses>> neu::punkt <<create>> +Linie(von : Punkt, bis : Punkt) +zeichne() <<create>> +Punkt(x : int, y : int) +gibx() : int +giby() : int Zeichnet die Linie im Zeichenprogramm. <<interface>> alt::form +male() alt::linie 1 -linie <<create>> +Linie(x0 : int, y0 : int, x1 : int, y1 : int) +male() c) Erweitern Sie das obige Klassendiagramm so, dass das Zeichenprogramm auch mit Rechtecken umgehen kann. Ein Rechteck besteht aus vier Linien und soll über seine linke obere und rechte untere Ecke definiert werden. Vermeiden Sie Abhängigkeiten zum Paket alt. Geben Sie alle Multiplizitäten an. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
22 Musterlösung <<interface>> neu::form * 1 Zeichenprogramm +zeichne() 1 neu::linie <<uses>> neu::punkt 1 -linie <<create>> +Linie(von : Punkt, bis : Punkt) +zeichne() Zeichnet die Linie im Zeichenprogramm. +male() <<interface>> alt::form alt::linie <<create>> +Linie(x0 : int, y0 : int, x1 : int, y1 : int) +male() 4 1 <<create>> +Punkt(x : int, y : int) +gibx() : int +giby() : int neu::rechteck <<uses>> <<create>> +Rechteck(ol : Punkt, ur : Punkt) +zeichne() Klasse mit Methoden 1 P Methoden unvollständig 0,5 P Komposition (Aggregation) zu neu::linie 1 P Ohne Mult. XOR andere Assozia. 0,5 P Implementierung 1 P /Vererbung 0,5 P <<uses>> 0,5 P Bonus (insg. max. 3 P) Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
23 Fragerunde 1 Das Entwurfsmuster Iterator ist den Variantenmustern zuzuordnen. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
24 Fragerunde 1 Das Entwurfsmuster Iterator ist den Variantenmustern zuzuordnen. Falsch 2 Das Entwurfsmuster Iterator ermöglicht polymorphe Iteration. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
25 Fragerunde 1 Das Entwurfsmuster Iterator ist den Variantenmustern zuzuordnen. Falsch 2 Das Entwurfsmuster Iterator ermöglicht polymorphe Iteration. Wahr Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
26 Übersicht Variantenmuster Varianten: Abstrakte Fabrik Besucher Fabrikmethode Kompositium Schablonenmethode Strategie Dekorierer Sinn: Umgang mit Abstraktion Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
27 Besucher Kapsle eine auf den Elementen einer Objektstruktur auszuführende Operation als ein Objekt Das Besuchermuster ermöglicht es, eine neue Operation zu definieren, ohne die Klassen der von ihr bearbeitenden Elemente zu verändern Synonyme Visitor Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
28 Besucher Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
29 Kompositum Erzeugung von Baumstrukturen um Bestandshierarchien zu repräsentieren Ermöglicht es Klienten, sowohl einzelne Objekte als auch Aggregate einheitlich zu behandeln Synonym Composite Whole-part Wird häufig in Kombination mit dem Besucher verwendet. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
30 Kompositum Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
31 Beispiel Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
32 Strategie Algorithmen einer Familie austauschbar machen Ermöglicht es Algorithmus unabhängig vom Klienten zu variieren Synonyme Strategy Policy Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
33 Strategie Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
34 Beispiel Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
35 Dekorierer Dynamisch neue Funktionalität an Objekt anfügen Synonyme Decorator Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
36 Dekorierer Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
37 Beispiel Streams in Java, Beispiel aus JMJRST: new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFileName), 8096)); Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
38 Unterschiede zu Stellvertreter Kann Funktionalität erweitern (d.h. mehr Methoden anbieten) Kann parallel zum umschlossenen Subjekt verwendet werden Dient nicht der Zugriffskontrolle Arbeitet immer auf einem inneren Objekt, erstellt dieses nicht selbst Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
39 Aufgaben a) Zeichnen Sie die Struktur der zwei Entwurfsmuster Strategie und Schablonenmethode. Kennzeichnen Sie die Entwurfsmuster eindeutig. Unterscheiden Sie deutlich zwischen konkreten und abstrakten Klassen/Methoden. b) Zu welcher/welchen Kategorie(n) gehören diese Entwurfsmuster laut Vorlesung? Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
40 Aufgaben a) Zeichnen Sie die Struktur der zwei Entwurfsmuster Strategie und Schablonenmethode. Kennzeichnen Sie die Entwurfsmuster eindeutig. Unterscheiden Sie deutlich zwischen konkreten und abstrakten Klassen/Methoden. b) Zu welcher/welchen Kategorie(n) gehören diese Entwurfsmuster laut Vorlesung? Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
41 Aufgaben a) Zeichnen Sie die Struktur der zwei Entwurfsmuster Strategie und Schablonenmethode. Kennzeichnen Sie die Entwurfsmuster eindeutig. Unterscheiden Sie deutlich zwischen konkreten und abstrakten Klassen/Methoden. b) Zu welcher/welchen Kategorie(n) gehören diese Entwurfsmuster laut Vorlesung? Beides sind Variantenmuster Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
42 Aufgaben c) Welches gemeinsame Ziel haben die beiden Entwurfsmuster? Inwiefern unterscheiden sie sich beim Erreichen dieses Ziels? d) Nennen Sie genau zwei Gründe, die laut Vorlesung für den Einsatz von Entwurfsmustern sprechen. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
43 Aufgaben c) Welches gemeinsame Ziel haben die beiden Entwurfsmuster? Inwiefern unterscheiden sie sich beim Erreichen dieses Ziels? Beide Entwurfsmuster erlauben es, Varianten eines Algorithmus zu verwenden. Die Schablonenmethode verwendet Vererbung, um Teile eines Algorithmus zu variieren, wohingegen die Strategie dies über Delegation erreicht. d) Nennen Sie genau zwei Gründe, die laut Vorlesung für den Einsatz von Entwurfsmustern sprechen. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
44 Aufgaben c) Welches gemeinsame Ziel haben die beiden Entwurfsmuster? Inwiefern unterscheiden sie sich beim Erreichen dieses Ziels? Beide Entwurfsmuster erlauben es, Varianten eines Algorithmus zu verwenden. Die Schablonenmethode verwendet Vererbung, um Teile eines Algorithmus zu variieren, wohingegen die Strategie dies über Delegation erreicht. d) Nennen Sie genau zwei Gründe, die laut Vorlesung für den Einsatz von Entwurfsmustern sprechen. Verbessern die Kommunikation im Team Erfassen wesentliche Konzepte und bringen sie in eine verständliche Form Helfen Entwürfe zu verstehen Dokumentieren Entwürfe kurz und knapp Verhindern unerwünschte Architektur-Drifts Verdeutlichen Entwurfswissen Dokumentieren und fördern den Stand der Kunst Helfen weniger erfahrenen Entwerfern Vermeiden die Neuerfindung des Rades Können Code-Qualität und Code-Struktur verbessern Fördern gute Entwürfe und guten Code durch Angabe konstruktiver Bsp. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
45 Aufgaben a) Welche beiden Entwurfsmuster erkennen Sie in diesem Klassendiagramm? Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
46 Aufgaben a) Welche beiden Entwurfsmuster erkennen Sie in diesem Klassendiagramm? Kompositum, Strategie b) Welchen Kategorien sind diese Entwurfsmuster zuzuordnen? Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
47 Aufgaben a) Welche beiden Entwurfsmuster erkennen Sie in diesem Klassendiagramm? Kompositum, Strategie b) Welchen Kategorien sind diese Entwurfsmuster zuzuordnen? Beides sind Variantenmuster Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
48 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
49 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Falsch 2 Eine Komponente kann immer nur mit einem einzigen Dekorierer (decorator) versehen werden. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
50 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Falsch 2 Eine Komponente kann immer nur mit einem einzigen Dekorierer (decorator) versehen werden. Falsch 3 Das Muster Strategie (strategy) kapselt austauschbares Verhalten und verwendet Delegierung, um zu entscheiden, welches Verhalten verwendet wird. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
51 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Falsch 2 Eine Komponente kann immer nur mit einem einzigen Dekorierer (decorator) versehen werden. Falsch 3 Das Muster Strategie (strategy) kapselt austauschbares Verhalten und verwendet Delegierung, um zu entscheiden, welches Verhalten verwendet wird. Wahr 4 In Java wird das Entwurfsmuster Null-Objekt durch null realisiert. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
52 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Falsch 2 Eine Komponente kann immer nur mit einem einzigen Dekorierer (decorator) versehen werden. Falsch 3 Das Muster Strategie (strategy) kapselt austauschbares Verhalten und verwendet Delegierung, um zu entscheiden, welches Verhalten verwendet wird. Wahr 4 In Java wird das Entwurfsmuster Null-Objekt durch null realisiert. Falsch Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
53 Nächstes Übungsblatt 1 Java API, Entwurfsentscheidungen begründen 2 Zustandsdiagramm implementieren 3 Java API, Entwurfsmuster erkennen 4 Refactoring, Entwurfsmuster sinnvoll anwenden Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
54 Abschluss Nächstes Tutorium: Montag, Nächstes Thema: Parallelität, Threads Das war es für heute Vielen Dank. Fabian I. Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /40
Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster
Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster Tutorium 17 Fabian Miltenberger 16.06.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg
MehrEntwurfsmuster. Tutorium 17 Fabian Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD)
Entwurfsmuster Tutorium 17 Fabian Miltenberger 02.06.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der
MehrEntwurfsmuster. Tutorium 7 iloveswt.de Fabian I. Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD)
Entwurfsmuster Tutorium 7 iloveswt.de Fabian I. Miltenberger 06.06.2016 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
MehrKlausur Softwaretechnik I
Klausur Softwaretechnik I 06.08.2009 Prof. Dr. Walter F. Tichy Dipl.-Inform. A. Höfer Dipl.-Inform. D. Meder Hier das Namensschild aufkleben. Zur Klausur sind keine Hilfsmittel und kein eigenes Papier
MehrTutorium Softwaretechnik I
Tutorium Softwaretechnik I Moritz Klammler 11. Juli 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 11. Juli 2017 Moritz Klammler - Tutorium Softwaretechnik
MehrEntwurfsmuster in Java
Entwurfsmuster in Java Das Observer- und das Decorator-Pattern Friederike Löwe 13. März 2011 Inhaltsverzeichnis Einleitung Wozu eigentlich Entwurfsmuster? Die Grundlage: Design-Prinzipien Das Decorator-Pattern
MehrÜberblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio
Entwurfsmuster Eine Einführung Botond Draskoczy Marcus Vitruvius Pollio Überblick Historie, Literatur Das Flugapparat-Bildschirmschoner-Projekt (FBP) Das internetbasierte Solar-Netzwerk (SNW) Zusammenfassung
MehrDesign Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff
Design Patterns II Der Design Muster Katalog Prof. Dr. Nikolaus Wulff Wiederverwendung Wiederverwendung ist das Schlagwort von OOP zur Erhöhung der Produktivität. Es gibt im Prinzip drei Methoden hierzu:
MehrEntwurfsprinzip. Entwurfsprinzip
Die Komposition (hat ein Beziehung) ist der Vererbung (ist ein Beziehung) vorzuziehen. Es können Familien von Algorithmen in eigenen Klassensätzen gekapselt werden. Das Verhalten lässt sich zu Laufzeit
MehrLukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster
Entwurfsmuster Lukas Klich Projektgruppe SHUTTLE Seminar: 28.11.2002 Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1 Motivation Die Menschheit löst Probleme, indem sie beobachtet, Beobachtungen
MehrEntwurfsmuster Martin Fesser 00IN
Entwurfsmuster Martin Fesser 00IN Inhalt Was sind Entwurfsmuster? Vorteile, Nachteile Entwurfsmusterkatalog (nach GoF) Variation von Entwurfsaspekten Wie Entwurfsmuster Entwurfsprobleme lösen Beispiele
MehrObjektorientierte und Funktionale Programmierung SS 2014
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
MehrStructural Patterns. B. Sc. Andreas Meißner
Structural Patterns B. Sc. Andreas Meißner Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Systeme, Universität Hannover 11/16/2004 Gliederung 1. Wiederholung Entwurfsmuster
MehrObjektorientierteund FunktionaleProgrammierung
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
MehrEinführung in die Informatik II
Einführung in die Informatik II SS 2012 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester 2012 Klausurtermine
MehrUnified Modelling Language
Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme
MehrSoftwaretechnik 1 5. Tutorium
Softwaretechnik 1 5. Tutorium Tutorium Nr. 1 Philipp Adolf 17.06.2014 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Aufgabe 1 Nur
MehrKennenlernen. Tutorium 7 iloveswt.de Fabian I. Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD)
Kennenlernen Tutorium 7 iloveswt.de Fabian I. Miltenberger 25.05.2016 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
MehrEntwurfsmuster (Design Patterns)
Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder
MehrSoftware Engineering. 7. Entwurfsmuster
Software Engineering 7. Entwurfsmuster Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung
MehrEntwurfsmuster. Marc Monecke
Entwurfsmuster Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen
MehrDesign Patterns. 3. Juni 2015
Design Patterns 3. Juni 2015 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Taentzer Softwarequalität 2015 138 Was sind Design Patterns?
MehrEntwurfsmuster - Iterator
HTWG Konstanz 7. Mai 2009 Muster Klassifikation objektbasiertes Verhaltensmuster des Patterns Ermögliche den sequentiellen Zugriff auf die Elemente eines zusammengestzten Objekts, ohne seine zugrundeligende
MehrInformatik II Übung 6 Gruppe 7
Informatik II Übung 6 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch DEBRIEFING Übung 5 2 U5A1-4 Im Prinzip alles richtig. Falls am Ende noch Zeit, dann Einsicht in die Best Of s 3 THEORIE Java Vererbung,
MehrAktivitäts-, Sequenz- und Zustandsdiagramme
Aktivitäts-, Sequenz- und Zustandsdiagramme Tutorium 17 Fabian Miltenberger 19.05.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales
MehrUniversität Bremen. Entwurfsmuster. Thomas Röfer. Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster
Entwurfsmuster Thomas Röfer Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Mein Rückblick: RoboCup 2 Euer Rückblick: Textsuche Naive Suche abrakadabra Boyer-Moore abrakadabra
MehrPRÜFUNG. Grundlagen der Softwaretechnik
Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 03.03.2011 Prüfungsdauer:
MehrSE Besprechung. Übung 4 Architektur, Modulentwurf
SE Besprechung Übung 4 Architektur, Modulentwurf SE, 22.11.11 Mengia Zollinger 2.1 Architekturstile (6 Punkte) 2.1.A Ausgabe eines Monatsabos an Angestellte Lösung: Pipe-and-Filter Beispiel Lösung [Benz,
MehrPraxisbuch Objektorientierung
Bernhard Lahres, Gregor Rayman Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung Galileo Press 1.1 Was ist Objektorientierung? 11 1.2 Hallo liebe Zielgruppe 12 1.3 Was bietet dieses Buch (und
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 24 UML, Teil 2 Überblick: Verhaltensmuster Strategiemuster Befehlsmuster 2 / 24 Aktivitätsdiagramme
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 24 UML, Teil 2 Überblick: Verhaltensmuster Strategiemuster Befehlsmuster 2 / 24 Aktivitätsdiagramme
MehrKlausur Softwaretechnik
Klausur Softwaretechnik 14.03.2008 Prof. Dr. Walter F. Tichy Dipl.-Inform. T. Gelhausen Dipl.-Inform. A. Paar Hier das Namensschild aufkleben. Zur Klausur sind keine Hilfsmittel und kein eigenes Papier
MehrBehavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul
Behavioral Patterns Seminar Software-Entwurf WS 04/05 Przemyslaw Dul Gliederung Design Pattern (Wiederholung) Einordnung Übersicht über die Kategorien: Creational,Structural,Behavioral Übersicht über die
Mehr3. Entwurfsmuster zur Entkopplung von Modulen
3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Entwurfsmuster (Design Patterns): Software-Entwicklungsaufgaben, die in vielen Ausprägungen häufig auftreten. Objektorientierte Schemata, die als Lösungen
MehrDecorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer
Decorator Pattern Analyse- und Design-Pattern CAS SWE FS14 Roland Müller Samuel Schärer Entwurfsmuster der «Gang of Four» Strukturmuster fassen Klassen und Objekte zu grösseren Strukturen zusammen Adapter
MehrEntwurfsmuster. Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr
Entwurfsmuster Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr Was sind Entwurfsmuster (1) Muster (allg.) sind schematische Lösungen für eine Klasse verwandter Probleme Beschreibung:
MehrEntwurfsmuster - Iterator & Composite
Entwurfsmuster - Iterator & Composite Alexander Rausch Seminar Entwurfsmuster WS08/09 19. November 2008 Gliederung 1 Einführung 2 Das Iterator Entwurfsmuster 3 Das Composite Entwurfsmuster 4 Quellen 5
MehrObjektorientierte Programmierung
Bernhard Lahres, Gregor Rayman Objektorientierte Programmierung Das umfassende Handbuch Galileo Press 1.1 Was ist Objektorientierung? 13 1.2 Hallo liebe Zielgruppe 14 1.3 Was bietet dieses Buch (und was
MehrSommersemester Implementierung I: Struktur
Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.
MehrInhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung 29
Vorwort von James Gosling, Sun Microsystems 15 Vorwort an Kursleiter 16 Vorwort des Übersetzers 24 Projekte, die in diesem Buch detailliert besprochen werden 25 Danksagungen 27 Teil 1 Grundlagen der Objektorientierung
MehrMatthias Geirhos. Entwurfsmuster. Das umfassende Handbuch. Rheinwerk. Computing
Matthias Geirhos Entwurfsmuster Das umfassende Handbuch Rheinwerk Computing Inhalt Vorwort 17 1 Einführung 19 1.1 Einleitung und allgemeine Hinweise 19 1.1.1 Für wen ist dieses Buch gedacht? 19 1.1.2 Muster
MehrGrundlagen der Softwaretechnik
Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag:
MehrJUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite!
JUnit a Cook s Tour Ziel des Frameworks Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren Design des Frameworks Beginne bei Nichts Schritt für Schritt aus passenden Mustern
MehrObserver Chain of Responsibility Mediator
Observer Chain of Responsibility Mediator Seminar Software Design Pattern - Sommersemester 2009 Vertragender: Christian Kube Betreuer: Frank Schumacher SDP - SS09 - Kommunikation - Christian Kube 1 Paket
MehrProgrammiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik
Programmiertechnik II SS 2017 Fakultät Informatik Bachelor Angewandte Informatik Prof. Dr. Oliver Bittel bittel@htwg-konstanz.de www-home.htwg-konstanz.de/~bittel SS 2017 Überblick! OOP: Schnittstellen
MehrMerkliste SoSy. V Modell. Anforderungen. Eigenschaften VKKNERV. Ermittlung FBI WAS. Volerekarte Punkte KKKMUH
Merkliste SoSy V Modell Verifikation - Übereinstimmung SW-Produkt - Spezifikation Validierung - Eignung SW-Produkt - Einsatzzweck Anforderungen Eigenschaften VKKNERV Vollständigkeit Konsistenz Korrektheit
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 28 Strukturmuster Kompositum Dekorierer Adapter 2 / 28 Einführung: Strukturmuster Zu
MehrEinführung in die objektorientierte Programmierung
Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.
MehrAktivitäts-, Sequenz- und Zustandsdiagramme
Aktivitäts-, Sequenz- und Zustandsdiagramme Tutorium 7 iloveswt.de Fabian I. Miltenberger 30.05.2016 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg
MehrUniversität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit
MehrSoftware Engineering, SoSe 07, WSI, D. Huson, May 7,
Software Engineering, SoSe 07, WSI, D. Huson, May 7, 2007 17 4 Modellierung in UML Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken. 4.1
Mehr185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster
2013-12-11 Software-Entwurfsmuster 1 185.A01 OOP Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 2 OOP Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen
MehrProgrammiertechnik II WS 2017/18
Programmiertechnik II WS 2017/18 Fakultät Informatik Bachelor Angewandte Informatik Prof. Dr. Oliver Bittel bittel@htwg-konstanz.de www-home.htwg-konstanz.de/~bittel WS 17/18 Überblick OOP: Schnittstellen
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)
MehrUML -Klassendiagramme
UML -Klassendiagramme UML - offline: ArgoUML http://argouml.stage.tigris.org/ UML online: Links genmymodel.com umlet.com/umletino/umletino.html Arten von UML-Diagrammen Diagramm Strukturdiagramm Verhaltensdiagramm
MehrObjektorientierte Systementwicklung
Karl-Heinz Rau Objektorientierte Systementwicklung Vom Geschäftsprozess zum Java-Programm Mit 162 Abbildungen vieweg Überblick und Vorbemerkungen 1 1 Objektorientierte Software-Entwicklung 5 1.1 Überblick
Mehr7. Zusammenfassung (1)
Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung
MehrMethoden und Architekturen der Softwaretechnik
Joachim Goll Methoden und Architekturen der Softwaretechnik STUDIUM VIEWEG+ TEUBNER Inhaltsverzeichnis Vorwort 7 Wegweiser durch das Buch 11 Inhaltsverzeichnis 17 Begriffsverzeichnis 23 Abkürzungsverzeichnis
MehrVorlesung Programmieren
Vorlesung Programmieren 11 Rekursion Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrUniversität Bremen. Entwurfsmuster. Thomas Röfer. Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster
Entwurfsmuster Thomas Röfer Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Rückblick UML Motivation Historie Spracheinheiten Strukturdiagramme Verhaltensdiagramme 2 Motivation Idee Einige
MehrTEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4
Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...
MehrTechniken der Projektentwicklungen
Dynamische Modellierung 8. Termin Rückblick auf statische Modellierung Dynamische Modellierung Basiskonzepte Beispiel Erweiterungen Eigenschaften Syntax Rückblick auf statische Modellierung Dynamische
MehrSoftwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler
Übungen zur Vorlesung Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungsblatt 7 Lösungshilfe Aufgabe 1. Analysephase (12 Punkte) Eine Firma hat den Auftrag erhalten eine
MehrC# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 3: Kombination OOP/WF
C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 3: Kombination OOP/WF 1/27/2012 1 Mi Statisches Modifizierer Eigenschaften Polymorphie Baupläne Konstruktor WinForms Sealed,
MehrALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
Mehr3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern
3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Vorlesung Objektorientierte Programmierung WS 2013/2014 / Folie 301 Entwurfsmuster (Design Patterns): Idee der Entwurfsmuster verstehen Software-Entwicklungsaufgaben,
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrVerhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik
Entwurfsmuster - Design Patterns HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik 27. November 2009 Gliederung 1 Einführung 2 Strategie-Muster 3 Beobachter-Muster
MehrSoftwaretechnik 1 Übung 2
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Übung 2 25.5.2009 Aufgabe 1 Klassendiagram // do X firexoccurred(); XListener + xoccurred(e:xevent) * listeners
MehrOOSE 8 Entwurfsmuster (Hörsaalübung)
OOSE 8 Entwurfsmuster (Hörsaalübung) SS 2015 Birgit Demuth Entwurfsmuster in Softwaretechnologie 2015 Prüfungsrelevant Composite Iterator Factory Method Class Adapter Object Adapter Observer Singleton
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster benennen wiederkehrende Probleme und Lösungen dienen dem Austasch von Erfahrungen Wiederverwendung von Erfahrung wo Wiederverwendung von Code versagt sehr abstrakt, daher häufig
MehrMustersuche in Quellcode
Mustersuche in Quellcode Komponentenbasierte Softwareentwicklung 13.07.2005 Peter Schübel 1 Gliederung 1. Vorstellung des Projekts InPulse 2. Design Patterns 1. Idee 2. Beispiele 3. Referenzsystem World
MehrVgl. Oestereich Kap 2.4 Seiten
Vgl. Oestereich Kap 2.4 Seiten 99-110 1 Vgl. Oestereich Kap 2.41 Seiten 99ff 2 Wie das Klassendiagramm ist auch das Objektdiagramm ebenfalls ein Strukturdiagramm. Da die Anzahl der Attribute sehr groß
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
MehrUML Eine kurze Einführung
UML Eine kurze Einführung Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrVorlesung Programmieren
Vorlesung Programmieren Software Design Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Software Design Wie schreibe ich gute Software?
MehrStrategy & Decorator Pattern
Strategy & Decorator Pattern Design Patterns Nutzen Wouldn t it be dreamy if only there were a way to build software so that when we need to change it, we could do so with the least possible impact on
MehrInhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung. Kapitel 1 Objekte und Klassen Objekte und Klassen Instanzen erzeugen Methoden aufrufen
Inhaltsverzeichnis Vorwort von James Gosling, Sun Microsystems Vorwort an Kursleiter Vorwort zur vierten deutschen Ausgabe Projekte, die in diesem Buch detailliert besprochen werden Danksagungen Teil 1
MehrDesign Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26
Design Patterns (Software-Architektur) Prof. Dr. Oliver Braun Letzte Änderung: 11.07.2017 15:12 Design Patterns 1/26 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides:
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
Mehr5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
MehrEffizientes Programmieren
Effizientes Programmieren Praktikum smuster (09.05.2016) Christopher Pietsch Agenda 1 2 smuster 3 4 1 / 23 smuster (09.05.2016) smuster Teil 1 2 / 23 smuster (09.05.2016) smuster Definition: [...] alle
MehrEffizientes Programmieren
Effizientes Programmieren Praktikum smuster (04.07.2017) Christopher Pietsch Agenda 1 2 smuster 3 4 1 / 23 smuster (04.07.2017) smuster Teil 1 2 / 23 smuster (04.07.2017) smuster Definition: [...] alle
Mehr4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrUnified Modeling Language 2
Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was
MehrEntwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik
Entwurfsmuster Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Information über Entwurfsmuster Die heutige Vorlesung: Einführung in die Thematik Die Vorlesung am 12.01:
MehrJason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel
Jason T. Roff UML IT Tutorial Übersetzung aus dem Amerikanischen von Reinhard Engel Inhaltsverzeichnis Inhaltsverzeichnis Einführung 11 Grundlagen der UML 15 Warum wir Software modellieren 16 Analyse,
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:
MehrCreational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
MehrEntwurfsmuster (Design Pattern) ETIS SS05
Entwurfsmuster (Design Pattern) ETIS SS05 Gliederung Motivation Pattern allgemein Proxy-Pattern Zusammenfassung 2 Motivation I Wie gut sind eure Programme strukturiert? Wartbarkeit? - Verständlichkeit
MehrLehrbuch der Objektmodellierung
Heide Balzert Lehrbuch der Objektmodellierung Analyse und Entwurf mit CD-ROM Technische Universität Darmstadt FACHBEREICH INFORMATIK BIBLIOTHEK Inventar-Nr.: Sachgebiete: Standort: Tt Spektrum Akademischer
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
MehrProgrammieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Programmieren I Überblick KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Übersicht Programmieren Programmieren I (1. Semester) 4 Vorlesungs- und Übungsstunden / Woche 7,5 (!) Stunden
MehrKLAUSUR SOFTWARETECHNIK
KLAUSUR SOFTWARETECHNIK 17.09.2009 Prof. Dr. Walter F. Tichy Dipl.-Inform. Andreas Höfer Dipl.-Inform. David J. Meder Hier das Namensschild aufkleben. Zur Klausur sind keine Hilfsmittel und kein eigenes
MehrObjektorientierte Modellierung (1)
Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist
Mehr