Skip to main content

Entwurfsmuster

Entwurfsmuster (design pattern) – Lösung für bestimmtes, in Zusammenhängen wiederkehrendes Entwurfsproblems

→ Faustregel: mindestens dreimal vor der Dokumentation sinnvoll eingesetzt und/oder beobachtet haben

Klassifizierung von Designmustern
Creational Patterns:
Helfen, System unabhängig davon zu erstellen, wie Objekte erstellt, komponiert und dargestellt werden.
Structural Patterns: Umgang mit der Zusammensetzung von Klassen und Objekten in größere Strukturen
Behavioural Patterns: Umgang mit der Wechselwirkung zwischen Objekten und Klassen, komplexe Kontrollflüsse


Beispiel: Strategy-Muster
Problem: Verwandte Klassen unterscheiden sich dadurch, dass sie gleiche Aufgaben durch verschiedene Algorithmen lösen
Lösung:

  1. Eine Klasse definiert alle gemeinsame Operationen (Strategy Context)
  2. Signaturen der unterschiedlich zu implementierenden Operationen werden in einer weiteren Klasse (Strategy)
  3. Von Klasse/Schnittstelle wird für Implementierungsalternative eine konkrete Unterklasse abgeleitet (Concrete Strategy)
  4. Strategy Context benutzt konkrete Strategy-Objekte, um unterschiedlich Operationen per Delegation auszuführen 

image-1664527626721.png

image-1664527651846.png

 

 

 

 

 

 

Vorteil des Strategy-Musters Nachteile des Strategy-Musters
  • Einkapselung von Algorithmen in Strategieklassen vermeiden Fallunterschiede zum Auswählen der jeweiligen Variante eines Algorithmus.
  • Auswahl der Varianten geschieht durchKonfiguration des Kontextes mit einem geeigneten Strategieobjekt.
  • Erhöhter Wissensbedarf
  • Erhöhter Kommunikationsaufwand:
  • Erhöhte Anzahl von Objekten
Vorteile der Musternutzung allgemein Nachteile der Musternutzung allgemein
  • Muster bieten eine Sprache für das Design
  • Probleme, Lösungen werden explizit gemacht
  • Muster sind keine fertigen Entwurfslösungen
  • Muster ersetzen nicht Konzept noch sauberen Entwurf