ppt - ITI

Werbung
-LABORPRAKTIKUMSOMMERSEMESTER 2005
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Folie 1
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
„Umsetzung von Pattern“
Muster:
Kompositum
Gruppe:
Karsten Ameling
Anja Rothe
Quelle:
Gamma, E., Helm, R., Jonson, R., Vlissides, J.,
„Entwurfsmuster“,
Addison Wesley, Bonn, 1996
Zweck
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Kompositum (Composite):
- objektbasiertes Strukturmuster
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
Zweck:
- Zusammenfügung von Objekten zu Baumstrukturen, um TeilGanzes-Hierarchien zu repräsentieren
- ermöglicht es Klienten, sowohl einzelne Objekte als auch
Kompositionen von Objekten einheitlich zu behandeln
Folie 2
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
Motivation
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Beispielszenario: Dateisystem
einOrdner
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
eineDatei
eineDatei
einOrdner
eineDatei
eineDatei
einOrdner
eineDatei
eineDatei
eineDatei
Folie 3
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
Abb. 1: rekursiv zusammengefügte Objektstruktur
Anwendbarkeit
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
Folie 4
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
Die Verwendung des Kompositionsmusters bietet sich an, wenn
- Teil-Ganzes-Hierarchien von Objekten repräsentiert werden
sollen
- Klienten in der Lage sein sollen, die Unterschiede zwischen
zusammengesetzten und einzelnen Objekten zu ignorieren
Struktur
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Klient
Komponente
Operation()
FuegeHinzu(Komponente)
Entferne(Komponente)
GibKindobjekt(int)
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
Blatt
Kompositum
Operation()
Operation()
FuegeHinzu(Komponente)
Entferne(Komponente)
GibKindobjekt(int)
Folie 5
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
Abb. 2: grundlegende Struktur des Kompositionsmusters
kindobjekte
für alle g in kindobjekte
g.Operation();
Interaktionen
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
- Klassenschnittstelle von Komponente zur Interaktion mit
Objekten in der Kompositionsstruktur verwendet
- Fälle:
1.) Empfänger ist ein Blatt:
- Anfrage wird direkt abgehandelt
2.) Empfänger ist ein Kompositum:
- Weiterleitung der Anfrage an die Kindobjektkomponenten
- ggf. Ausführung zusätzlicher Operationen vor und/oder
nach der Weiterleitung
Folie 6
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
Konsequenzen
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
Das Kompositionsmuster
+ definiert Klassenhierarchien auf Basis von Klassen für
primitive und zusammengesetzte Objekte
+ vereinfacht den Klienten dadurch, dass er Kompositionsstrukturen und einzelne Objekte einheitlich behandeln kann
+ vereinfacht es, neue Arten von Komponenten hinzuzufügen
- kann ihren Entwurf zu allgemein werden lassen
Folie 7
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
Implementierung (1/3)
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
Bei der Implementierung zu bedenkende Punkte:
1.) Explizite Referenz auf das Elternobjekt
- Aufrechterhaltung von Referenzen vereinfacht Traversierung und
Verwaltung einer Kompositionsstruktur
2.) Gemeinsame Nutzung von Komponenten
- zur Senkung der Speicheranforderungen
- ggf. Speicherung mehrfacher Elternobjekte durch die Kindobjekte
3.) Maximierung der Komponentenschnittstelle
Folie 8
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
- Definition möglichst vieler gemeinsamer Operationen der Blattund Kompositionsklassen in der Komponentenklasse
- Komponentenklasse bietet Defaultimplementierungen, die von
den Blatt- und Kompositionsklassen überschrieben werden
Implementierung (2/3)
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
4.) Deklaration von Verwaltungsoperationen für Kindobjekte
- Entscheidung für den Ort der Definition nach Abwägen der Vorund Nachteile bzgl. Sicherheit und Transparenz
Komponentenklasse
+ Transparenz
- Sicherheit
Kompositionsklasse
+ Sicherheit
- Transparenz
5.) Ort des Behälters für enthaltene Komponenten
- Einfügen der Behälterreferenz in die Oberklasse (Komponentenklasse) führt zur Verschwendung von Speicherplatz in den Blättern
6.) Ordnung der Kindobjekte
Folie 9
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
- Entwurf von Zugriffs- und Verwaltungsschnittstellen zur korrekten
Verwaltung der Kindobjekt-Reihenfolge erforderlich
Implementierung (3/3)
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
7.) Verbessern des Laufzeitverhaltens durch Zwischenspeicherung
(Caching)
- Zwischenspeicherung von Traversierungs- und Suchinformationen
über Kindobjekte in Kompositionsklasse möglich, um Traversierung
oder Suche abzukürzen
- Definition einer Schnittstelle erforderlich, um bei Änderungen einer
Komponente die Invalidierung des Zwischenspeichers ihres Elternobjektes zu erreichen
8.) Löschen der Komponenten
- üblicherweise Kompositum für das Löschen seiner Kindobjekte
zuständig gemacht, wenn es selbst gelöscht wird
9.) Datenstrukturen zum Speichern von Komponenten
Folie 10
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
- Vielzahl von Datenstrukturen (z. B. verkettete Listen, Bäume,
Arrays, Hash-Tabellen) zum Speichern von Kindobjekten geeignet
- Wahl der Datenstruktur von der gewünschten Effizienz abhängig
Verwandte Muster
-LaborpraktikumSommersemester 2005
„Umsetzung von
Pattern“
Kompositum (Composite)
1. Zweck
2. Motivation
3. Anwendbarkeit
4. Struktur
5. Interaktionen
6. Konsequenzen
7. Implementierung
8. Verwandte Muster
Bezug zu anderen Entwurfsmustern
- Zuständigkeitskette
- Dekorierermuster
- Fliegengewichtmuster
- Iteratormuster
- Besuchermuster
Folie 11
Karsten Ameling
Anja Rothe
Fernstudium Informatik
Matrikel 2000
Herunterladen