Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

-LABORPRAKTIKUM- SOMMERSEMESTER 2005 Umsetzung von Pattern Muster: State Gruppe: Christian Wolff Marita Schwaß Quelle: Gamma, E., Helm, R., Jonson, R.,

Ähnliche Präsentationen


Präsentation zum Thema: "-LABORPRAKTIKUM- SOMMERSEMESTER 2005 Umsetzung von Pattern Muster: State Gruppe: Christian Wolff Marita Schwaß Quelle: Gamma, E., Helm, R., Jonson, R.,"—  Präsentation transkript:

1 -LABORPRAKTIKUM- SOMMERSEMESTER 2005 Umsetzung von Pattern Muster: State Gruppe: Christian Wolff Marita Schwaß Quelle: Gamma, E., Helm, R., Jonson, R., Vlissides, J., Entwurfsmuster, Addison Wesley, Bonn, 1996

2 State – Muster (Zustand) Laborpraktikum Umsetzung von Pattern 1/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000 Schwerpunkte : 1.Zweck 2.Motivation 3.Struktur 4.Interaktion 5.Konsequenzen 6.Implementierung 7.Verwandte Muster

3 1. Zweck Laborpraktikum Umsetzung von Pattern 1.Zweck 2.Motivation 3.Struktur 4.Interaktion 5.Konsequenzen 6.Implementierung 7.Verwandte Muster 2/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000 Es soll einem Objekt möglich sein, sein Verhalten zu ändern, wenn sich sein interner Zustand ändert. Das Objekt scheint dann seine Klasse zu ändern. Variante: Der interne Zustand eines Objektes ändert sich.

4 2. Motivation Laborpraktikum Umsetzung von Pattern 1. Zweck 2.Motivation 3.Struktur 4.Interaktion 5.Konsequenzen 6.Implementierung 7.Verwandte Muster 3/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000 Beispiel Lichtautomat: 1. Zustand = Klasse

5 2. Motivation Laborpraktikum Umsetzung von Pattern 1. Zweck 2.Motivation 3.Struktur 4.Interaktion 5.Konsequenzen 6.Implementierung 7.Verwandte Muster 4/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel Verallgemeinerung

6 2. Motivation Laborpraktikum Umsetzung von Pattern 1. Zweck 2.Motivation 3.Struktur 4.Interaktion 5.Konsequenzen 6.Implementierung 7.Verwandte Muster 5/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel Aggregation zur Automaten-Klasse

7 2. Motivation Laborpraktikum Umsetzung von Pattern 1. Zweck 2.Motivation 3.Struktur 4.Interaktion 5.Konsequenzen 6.Implementierung 7.Verwandte Muster 6/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel Java-Code

8 3. Struktur Laborpraktikum Umsetzung von Pattern 1.Zweck 2.Motivation 3.Struktur 4.Interaktion 5.Konsequenzen 6.Implementierung 7.Verwandte Muster 7/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000 Kontext: - definiert die den Klienten interessierende Schnittstelle - verwaltet ein Exemplar einer KonkreterZustand- Unterklasse, welche den aktuellen Zustand definiert Zustand: - definiert Schnittstelle zur Kapselung des mit einem be- stimmten Zustand des Kontextobjekts verbundenen Verhalten KonkreterZustand: - jede Unterklasse beinhaltet ein Verhalten, das mit einem Zustand des Kontextobjekts verbunden ist

9 4. Interaktion Laborpraktikum Umsetzung von Pattern 1. Zweck 2. Motivation 3. Struktur 4. Interaktion 5. Konsequenzen 6. Implementierung 7. Verwandte Muster 8/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel Kontextobjekt delegiert zustandsspezifische Anfragen an das aktuelle KonkreterZustand-Objekt. 2.Ein Kontext kann sich selbst als Argument an das die Anfrage bearbeitende Zustandsobjekt mitgeben. Dadurch ist es dem Zustandsobjekt möglich, ggf. auf das Kontextobjekt zuzugreifen. 3. Das Kontextobjekt bietet die für die Kunden interessante Schnittstelle. Der Kunde kann ein Kontextobjekt mit Zustandsobjekten konfigurieren. Ist ein Kontextobjekt einmal konfiguriert, braucht sich der Kunde nicht mehr direkt mit den Zustandsobjekten befassen. 4. Welche Zustände aufeinander folgen und unter welchen Bedingungen sie dies tun, kann sowohl von der Kontext- als auch den KonkreterZustand-Unterklassen bestimmt werden.

10 5. Konsequenzen Laborpraktikum Umsetzung von Pattern 1. Zweck 2. Motivation 3. Struktur 4. Interaktion 5. Konsequenzen 6. Implementierung 7. Verwandte Muster 9/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel Das Zustandsmuster lokalisiert zustandspezifisches Verhalten und teilt das Verhalten in unterschiedliche Zustände auf. -Der gesamte zustandsspezifische Code ist in einer Zustands- unterklasse neue Zustände und Zustandsübergänge können einfach durch Definition einer neuen Unterklasse hinzugefügt werden. - Logik der Zustandsübergänge ist auf die Zustandsunterklassen verteilt leichter zu überschauen und zu warten 2.Zustandsobjekte können gemeinsam genutzt werden. -Wenn Zustandsobjekte über keine Exemplarvariablen verfügen, dann können Kontextobjekte ein Zustandsobjekt gemeinsam nutzen.

11 6. Implementierung Laborpraktikum Umsetzung von Pattern 1. Zweck 2. Motivation 3. Struktur 4. Interaktion 5. Konsequenzen 6. Implementierung 7. Verwandte Muster 10/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel Definition der Zustandsübergänge -Im Zustandsmuster ist nicht bestimmt, welcher Teilnehmer die Kriterien der Zuständeübergänge definiert. -Ändern sich die Kriterien nicht, könnten sie direkt im Kontextobjekt implementiert werden. -Flexibler ist es jedoch, wenn die Zustandsklassen ihren Nachfolgezustand und wann der Übergang erfolgen soll, selbst angeben. Kontextobjekt erhält weitere Schnittstelle, die es den Zustandsobjekten ermöglicht, den aktuellen Zustand des Kontextobjekts explizit zu setzen.

12 6. Implementierung Laborpraktikum Umsetzung von Pattern 1. Zweck 2. Motivation 3. Struktur 4. Interaktion 5. Konsequenzen 6. Implementierung 7. Verwandte Muster 11/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel Erzeugen und Löschen von Zustandobjekten Frage: Sollen Zustandsobjekte nur bei Bedarf erzeugt werden und danach gelöscht werden (1) oder im voraus erzeugt und danach niemals gelöscht werden(2). (1)Sollte genutzt werden, wenn die möglichen Eingabezustände zur Laufzeit bekannt sind und sich die Kontextobjekte selten ändern. (2)Sollte genutzt werden, wenn die Zustandsänderungen schnell und häufig sind.

13 6. Implementierung Laborpraktikum Umsetzung von Pattern 1. Zweck 2. Motivation 3. Struktur 4. Interaktion 5. Konsequenzen 6. Implementierung 7. Verwandte Muster 12/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel Alternativen zur Realisierung von Zustandsdiagrammen 3.1. Tabellenbasierte Alternative Idee: Jeder Zustand hat eine Tabelle, in der jede mögliche Eingabe auf einen Nachfolgezustand abgebildet wird. Vorteil: regelmäßige Struktur der Tabelle Übergangskriterien können durch die Modifikation von Daten festgelegt werden, statt durch Programmcode. Nachteil: Übergänge sind weniger explizit zu sehen und daher schwerer zu warten Aktionen während eines Zustandsüberganges sind schwierig einzubinden.

14 6. Implementierung Laborpraktikum Umsetzung von Pattern 1. Zweck 2. Motivation 3. Struktur 4. Interaktion 5. Konsequenzen 6. Implementierung 7. Verwandte Muster 13/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel Logische Ausdrücke Vorteile: äußerst kompakt, ideal für Hardwarerealisierung Nachteile: Minimierung der Zustandsübergangstabelle nötig, schlecht erweiterbar 3.3. Case-Anweisungen Vorteile: geeignet für procedurale Sprachen, relativ kompakt Nachteile: verschachtelte Case/If-then-Konstrukte, unübersichtlich, schlecht erweiterbar

15 6. Implementierung Laborpraktikum Umsetzung von Pattern 1. Zweck 2. Motivation 3. Struktur 4. Interaktion 5. Konsequenzen 6. Implementierung 7. Verwandte Muster 14/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel State - Muster Vorteile: geeignet für objektorientierte Sprachen, gut erweiterbar, übersichtlich, hohe Verfolgbarkeit vom Zustandsdiagramm zum Code Nachteile: viele Klassen (Code) mit hoher Ähnlichkeit

16 7.Verwandte Muster Laborpraktikum Umsetzung von Pattern 1. Zweck 2. Motivation 3. Struktur 4. Interaktion 5. Konsequenzen 6. Implementierung 7. Verwandte Muster 15/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000 Fliegengewichtmuster: erläutert, wann und wie Zustandsobjekte gemeinsam genutzt werden können. Singletons: Zustandsobjekte sind oft Singletons


Herunterladen ppt "-LABORPRAKTIKUM- SOMMERSEMESTER 2005 Umsetzung von Pattern Muster: State Gruppe: Christian Wolff Marita Schwaß Quelle: Gamma, E., Helm, R., Jonson, R.,"

Ähnliche Präsentationen


Google-Anzeigen