PowerPoint-Präsentation

Werbung
-LABORPRAKTIKUMSOMMERSEMESTER 2005
„Umsetzung von Pattern“
Muster:
Schablonenmethode
(Template Method)
Gruppe:
Frank Bauske
Corinna Benecke
Quelle:
Gamma, E., Helm, R., Jonson, R., Vlissides, J.,
„Entwurfsmuster“,
Addison Wesley, Bonn, 1996
Zweck und Motivation
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Struktur
4)
Konsequenzen
5)
Implementierung
6)
Verwendung und
verwandte Muster
02/11
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
Allgemein:
•
Definition eines Grundgerüsts eines
Algorithmus unter Verwendung abstrakter
Operationen (Schablonenmethode)
•
Überschreiben durch Unterklassen zulässig,
um konkretes Verhalten zu erzielen
Zweck und Motivation
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Struktur
4)
Konsequenzen
5)
Implementierung
6)
Verwendung und
verwandte Muster
Dokument
Anwendung
Speichere()
Öffne()
Schliesse()
LiesEin()
FügeDokumentHinzu()
ÖffneDokument()
ErzeugeDokument()
KannDokumentÖffnen()
VorDokumentÖffnen()
MeinDokument
LiesEin()
03/11
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
MeineAnwendung
°
ErzeugeDokument()
KannDokumentÖffnen()
VorDokumentOeffnen()
return new MeinDokument
Anwendbarkeit
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Struktur
4)
Konsequenzen
5)
Implementierung
6)
Verwendung und
verwandte Muster
Eine Schablonenmethode sollte verwendet
werden:
 um invariante Teile eines Algorithmus genau
einmal festzulegen
 um die Verdopplung von Code zu vermeiden
04/11
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
 um Erweiterungen durch Unterklassen zu
kontrollieren
Struktur
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
AbstrakteKlasse
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Struktur
4)
Konsequenzen
5)
Implementierung
6)
Verwendung und
verwandte Muster
Schablonenmethode() °
PrimitiveOperation1()
PrimitiveOperation2()
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
PrimitiveOperation1()
…
PrimitiveOperation2()
…
KonkreteKlasse
05/11
…
PrimitiveOperation1()
PrimitiveOperation2()
Struktur
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Struktur
4)
Konsequenzen
5)
Implementierung
6)
Verwendung und
verwandte Muster
06/11
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
Beispiel Benutzungsschnittstelle eines
Dateisystems:
Konsequenzen
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Struktur
4)
Konsequenzen
5)
Implementierung
6)
Verwendung und
verwandte Muster
07/11
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
-
grundlegende Technik zur Wiederverwendung
von Code
-
führt zu einem invertierten Kontrollfluss
(„Hollywood-Prinzip“)
-
ruft folgende Arten von Operationen auf:
1) konkrete Operationen der konkreten oder
Klienten-Klassen
2) konkrete Operationen der abstrakten
Klasse
3) abstrakte Operationen
4) Fabrikmethoden
5) Einschubmethoden
Konsequenzen
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Struktur
4)
Konsequenzen
5)
Implementierung
6)
Verwendung und
verwandte Muster
Einschubmethoden:
-
bieten Defaultverhalten, dass von Unterklassen
bei Bedarf erweitert werden kann
-
Schablonenmethode sollte klar unterscheiden
zwischen:
a.) Einschubmethoden
und
08/11
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
b.) abstrakten Operationen
Implementierung
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Struktur
4)
Konsequenzen
5)
Implementierung
6)
Verwendung und
verwandte Muster
Implementierungsaspekte:
1) Verwendung der C++ -Zugriffskontrolle
2) Minimierung primitiver Operationen
3) Namenskonventionen
09/11
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
Verwendung und verwandte Muster
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Konsequenzen
4)
Struktur
5)
Implementierung
6)
Verwendung und
verwandte Muster
10/11
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
bekannte Anwendung:
•
Stream I/O API von Java
•
ein OutputStream bietet eine Methode
zum Schreiben eines Byte-Arrays
•
Methode für das einzelne Byte ist
jedoch noch abstrakt
•
Klassen wie FileOutputStream können
diese Methode überschreiben und
„erben“ damit eine funktionierende
Methode zum Schreiben eines ByteArrays
Verwendung und verwandte Muster
- Laborpraktikum –
Sommersemester 2005
„Umsetzung von Pattern“
1)
Zweck und
Motivation
2)
Anwendbarkeit
3)
Konsequenzen
4)
Struktur
5)
Implementierung
6)
Verwendung und
verwandte Muster
Beziehungen zu anderen Mustern:
Fabrikmethode
Aufruf
Frank Bauske
Corinna Benecke
Fernstudium Informatik
Matrikel 2000
Aufruf
Schablonenmethode
Extraktion
11/11
Brücke
Verwandte
Muster:
Erbauer
Dekomposition
Strategie
Herunterladen