Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

-LABORPRAKTIKUM- SOMMERSEMESTER 2005

Ähnliche Präsentationen


Präsentation zum Thema: "-LABORPRAKTIKUM- SOMMERSEMESTER 2005"—  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“ State – Muster (Zustand) Schwerpunkte : Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 1/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

3 1. Zweck Es soll einem Objekt möglich sein, sein Verhalten zu ändern,
Laborpraktikum „Umsetzung von Pattern“ 1. Zweck 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. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 2/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

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

5 Fernstudium Informatik
Laborpraktikum „Umsetzung von Pattern“ 2. Motivation 2. Verallgemeinerung Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 4/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

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

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

8 Fernstudium Informatik
Laborpraktikum „Umsetzung von Pattern“ 3. Struktur Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 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 7/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

9 Fernstudium Informatik
Laborpraktikum „Umsetzung von Pattern“ 4. Interaktion Kontextobjekt delegiert zustandsspezifische Anfragen an das aktuelle KonkreterZustand-Objekt. 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. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 8/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

10 Fernstudium Informatik
Laborpraktikum „Umsetzung von Pattern“ 5. Konsequenzen 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 Zustandsobjekte können gemeinsam genutzt werden. Wenn Zustandsobjekte über keine Exemplarvariablen verfügen, dann können Kontextobjekte ein Zustandsobjekt gemeinsam nutzen. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 9/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

11 Fernstudium Informatik
Laborpraktikum „Umsetzung von Pattern“ 6. Implementierung 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. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 10/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

12 Fernstudium Informatik
Laborpraktikum „Umsetzung von Pattern“ 6. Implementierung 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). Sollte genutzt werden, wenn die möglichen Eingabezustände zur Laufzeit bekannt sind und sich die Kontextobjekte selten ändern. Sollte genutzt werden, wenn die Zustandsänderungen schnell und häufig sind. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 11/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

13 Fernstudium Informatik
Laborpraktikum „Umsetzung von Pattern“ 6. Implementierung 3.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. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 12/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

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

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

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


Herunterladen ppt "-LABORPRAKTIKUM- SOMMERSEMESTER 2005"

Ähnliche Präsentationen


Google-Anzeigen