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 DesignmusternCreational 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 StrukturenBehavioural Patterns: Umgang mit der Wechselwirkung zwischen Objekten und Klassen, komplexe Kontrollflüsse Beispiel: Strategy-MusterProblem: Verwandte Klassen unterscheiden sich dadurch, dass sie gleiche Aufgaben durch verschiedene Algorithmen lösenLösung: Eine Klasse definiert alle gemeinsame Operationen (Strategy Context) Signaturen der unterschiedlich zu implementierenden Operationen werden in einer weiteren Klasse (Strategy) Von Klasse/Schnittstelle wird für Implementierungsalternative eine konkrete Unterklasse abgeleitet (Concrete Strategy) Strategy Context benutzt konkrete Strategy-Objekte, um unterschiedlich Operationen per Delegation auszuführen 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