ppt - ITI

Werbung
-LABORPRAKTIKUMSOMMERSEMESTER 2005
„Umsetzung von Pattern“
Folie 1
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
Muster:
DECORATOR
Gruppe:
Christian Pfeffer
Carsten Walther
Quelle:
Gamma, E., Helm, R., Jonson, R., Vlissides, J.,
„Entwurfsmuster“,
Addison Wesley, Bonn, 1996
1. Einordnung
•
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
Pattern werden in drei Patternklassen
eingeordnet
1. Strukturmuster
2. Verhaltensmuster
3. Erzeugungsmuster
Folie 2
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
•
Decorator ist Strukturmuster
•
auch bekannt als Wrapper
2. Motivation
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
Folie 3
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
Vererbung erweist sich in vielen Fällen als zu
unflexibel. Weitaus flexibler ist es, ein
einzelnes Objekt mit einer Komponente wie
z.B. einem Filter zu verknüpfen.
Diese Verknüpfung wird mittels eines
Decorator herbeigeführt. Ein Decorator leitet
die Anforderungen an eine Komponente weiter
und kann zusätzliche Aktionen wie z.B. das
herausfiltern von Buchstaben ausführen.
2. Motivation
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
Mit dem Decorator kann man Objekte (also
nicht ganze Klassen) dynamisch (zur Laufzeit)
um neue Funktionalitäten erweitern und diese
auch wieder entziehen.
Objekte können hierbei rekursiv
zusammengesetzt werden, um zusätzliche
Funktionalitäten zu erlangen.
Dieses soll am Beispiel eines Textfilters
verdeutlicht werden.
Folie 4
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
3. Beispiel
• Liste von Wörtern soll zur Ausgabe gefiltert
werden
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
1. Wort muß gegebenen Buchstaben enthalten, um in
die Ausgabeliste übernommen zu werden
2. Worte können aufsteigend oder absteigend
sortiert werden
• Filter sollen mehrmals aufrufbar sein
• Reihenfolge der Filter soll veränderbar sein
Folie 5
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
3. Beispiel
Mögliche Implementierungen
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
1. statischer Ansatz: Klassenhierarchien erweitern
• Kombinierbarkeit bei statischem Ansatz nicht möglich
• Explosion der Zahl der Klassen
• mangelnde Flexibilität
• nicht beliebig kombinierbar
• z.B. keine Schachtelung
2. dynamischer Ansatz: Decorator
Folie 6
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
• Funktionalität dynamischer und transparenter hinzufügen
• Entfernung der Funktionalität wieder möglich
• Praktikabler als Unterklassenbildung
4. Struktur
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
Folie 7
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
4. Struktur
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
Folie 8
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
5. Komponenten
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
Folie 9
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
• MainFrame.java
- Beispielanwendung zur Visualisierung
• StringList.java
- Interface zur Definition der Zugriffsmethoden
• SimpleStringList.java
- einfache Implementierung des StringList-Interfaces
• FilteredStringList.java
- Implementierung mit Filtermöglichkeit
• SortedStringList.java
- Implementierung mit Sortiermöglichkeit
6. Visualisierung
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
Folie 10
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
7. Verwandte Muster
1.
2.
3.
4.
5.
6.
7.
Einordnung
Motivation
Beispiel
Struktur
Komponenten
Visualisierung
Verwandte Muster
Folie 11
Christian Pfeffer
Carsten Walther
Fernstudium Informatik
Matrikel 2000
•
Adaptor
•
Composite
Herunterladen