Beruflich Dokumente
Kultur Dokumente
Definitionen: Entwurfsmuster =
bewährte Schablone für ein Entwurfsproblem
wiederverwendbare Vorlage zur Problemlösung
Keine „Technologie“ eher „Dokumentationskultur“
Geschichte
Ursprünglich Begriff aus der Architektur
ca. 1988-1991 Arbeiten von Erich Gamma
1995 „Gang Of Four“- Buch „Design Patterns“
Aufbau einer Musterbeschreibung (im Buch)
Mustername
Stichwort zur Benennung von Mustern
Wichtig für den Austausch mit Kollegen
wichtig zum klareren Denken in Entwurfsmuster
Problemabschnitt
Wann ist das Muster anzuwenden?
Welches Problem wird adressiert?
Was ist der Kontext?
Lösungsabschnitt
Aus welchen Elementen besteht die Lösung?
Welche Beziehungen bestehen zwischen den Elementen?
Wofür sind die Elemente Zuständig?
Wie arbeiten die Elemente zusammen?
Konsequenzabschnitt
Welche Vorteile hat die Anwendung dieses Musters?
Welche Nachteile hat die Anwendung dieses Musters?
Arten von Entwurfsmustern
Erzeugungs-Patterns
helfen, ein System unabhängig davon zu machen, wie seine
Objekte erzeugt, zusammengesetzt und repräsentiert werden
Struktur-Patterns
Befassen sich mit der Zusammensetzung von Klassen und
Objekten zu größeren Strukturen.
Verhaltens-Patterns
Befassen sich mit der Interaktion zwischen Objekten und Klassen.
Beschreiben komplexe Kontrollflüsse, die zur Laufzeit schwer
nachvollziehbar sind.
Split Object Patterns
Aufteilung eines konzeptionellen Gesamtobjektes in modellierte
Teilobjekte, die kooperieren um das Verhalten des intendierten
Gesamtobjektes zu realisieren
Konkrete Muster klassifiziert
Verhaltensmuster Strukturmuster
SelectionAdapter()
Visitor Composite
Observer Flyweight
Command Deforator
Template Method Proxy
textStatement() Chain Of Respons. Adapter
HTMLStatement() State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster
Verhaltensmuster Strukturmuster
Visitor Composite
Observer Flyweight
Command Decorator
Template Method Proxy
Chain Of Respons. Adapter
State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster
Absicht
Es gibt verschiedene Algorithmen für ein Problem,
die beliebig ausgetauscht werden können
„Switch“-Statement soll vermieden werden
Vorbereitung des Patterns „Template-Method“
Beispiel (Motivation)
Für die Berechnung von Zeilenumbrüchen gibt es
verschiedene Algorithmen.
Später sollen leicht neue ergänzt werden können.
Ähnliche Muster:
„State-Pattern“, wie Strategy nur mit innerem
Zustand (Context)
Strategy-Muster in UML
Ähnliche Muster:
„State-Pattern“, wie Strategy nur mit innerem
Zustand (aus dem Context)
Implementierungsvarianten
Übergabe der Strategie
Feste Zuweisung in der Klasse
Setter-Methode
Plugin-Mechanismus
Verhaltensmuster Strukturmuster
Visitor Composite
Observer Flyweight
Command Decorator
Template Method Proxy
Chain Of Respons. Adapter
State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster
Verhaltensmuster Strukturmuster
Visitor Composite
Observer Flyweight
Command Decorator
Template Method Proxy
Chain Of Respons. Adapter
State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster
Verhaltensmuster Strukturmuster
Visitor Composite
Observer Flyweight
Command Decorator
Template Method Proxy
Chain Of Respons. Adapter
State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster
Proxy
bietet gleiches Interface wie „Subject“
referenziert eine "RealSubject"-Instanz
kontrolliert alle Aktionen auf dem "RealSubject"
Subject
definiert das gemeinsame Interface
RealSubject
das Objekt das der Proxy vertritt
eigentliche Funktionalität
Zusammenspiel
selektives Forwarding
Verschiedene Arten von Proxys (Beispiele)
Schutzproxy.
Erlaubt Zugriff nur, wenn Berechtigung
nachgewiesen wurde.
Remote Proxy
Zugriff auf entferntes Objekt stellt sie wie lokaler
Zugriff dar.
Virtueller Proxy
Verzögerung kostspieliger Aktionen.
… weitere Anwendungen denkbar.
Konkrete Muster klassifiziert
Verhaltensmuster Strukturmuster
Visitor Composite
Observer Flyweight
Command Decorator
Template Method Proxy
Chain Of Respons. Adapter
State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster
C
lient 1opera C o
to
iommnpp onent
()onent) p
a dd(C arts
*
rgeemoavre
tP t((iC
nto)mponent)
Verhaltensmuster Strukturmuster
Visitor Composite
Observer Flyweight
Command Decorator
Template Method Proxy
Chain Of Respons. Adapter
State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster
Komposition: Vererbung:
Ein Objekt wird in ein Neue Klasse wird erstellt,
anders gesteckt, das die die beide Schnittstellen
Schnittstelle impementiert, bzw eine auf
implementiert die andere abbildet.
Konkrete Muster klassifiziert
Verhaltensmuster Strukturmuster
Visitor Composite
Observer Flyweight
Command Decorator
Template Method Proxy
Chain Of Respons. Adapter
State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster
Absicht
Von einem Objekt soll es nur eine Instanz geben
Dennoch nicht static, aus Erweiterbarkeitsgründen
Jeder soll leicht eine Referenz bekommen können
Motivation
DB Connection Pool, Repository, Schnittstellen zu
Systemdiensten
Andere Muster: Facade, Factory
Singleton
u
sinin
nig
qluee
t In
o nsD
ta
an
t
ace
stgale
sgie
n ntcoen(O
)peration() ruentiu
qru
neInstance
tSingletonD ata()
Singleton Umsetzung in Java!
Lazy Evaluation!
Konkrete Muster klassifiziert
Verhaltensmuster Strukturmuster
Visitor Composite
Observer Flyweight
Command Decorator
Template Method Proxy
Chain Of Respons. Adapter
State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster
do*cs A
Beispiel
o pDeo nc(u
)m e
nt creap
tepl
Di
oca
c
uti
o
mn
en t
()
cslaovsee(()) ne wD oo
ccuu
mee
nn
tt() D o c u
m
corcesa
tee
n
D
ot*
codo
c
ucm =
ent();
revert() op enD m d .
add
(d
doc–>open(); )
;
M yD ocum ent «creates»cM yA p
reateDp li
ca
ocumti
o n
ent() returnnewM
yD
ocum
ent
C rea tor
Allgemeine Struktur
Product faancO
topre
yM e t
h od
(
ration()) .p.roduct=factoryM
ethod()
..
oncreteProduct «creates»C
C o n c
factoryMreteC rea
to
ethod()r returC
no
nn
ecw
reteProduct
Factory Method –Statische Struktur
Creator
Product faancOtopreyMraetitohno(d)() .product=factoryMethod()
.
ConcreteProduct «creates»CfaocntocrryeMteeCthroeda(t)or returCnonnecwreteProduct
Konkrete Muster klassifiziert
Verhaltensmuster Strukturmuster
Visitor Composite
Observer Flyweight
Command Decorator
Template Method Proxy
Chain Of Respons. Adapter
State Bridge
Strategy Facade
Factory Prototype
Factory Method Singleton
Builder
Erzeuger-Muster