Einführung in Design Pattern

Transcrição

Einführung in Design Pattern
1
Ein Design Pattern sollte eine bewährte Lösung zu einem oft wiederkehrenden Problem
bieten.
Das verwendete Design Pattern sollte aber die Lösung nicht (unnötig) aufblähen oder
komplizierter/aufwändiger machen.
2
Design Pattern sind unabhängig von der konkreten Programmiersprache. Das
ermöglicht, dass man zunächst abstrakt über mögliche Lösungen sprechen kann.
Damit kann auf hohem Abstraktions-Niveau über verschiedene Alternativen diskutiert
werden, also ohne eine konkrete Lösung (Programmcode).
3
Entwickler können durch das Kennen vieler Design Pattern dazu verleitet werden,
möglichst viele Pattern zu verwenden und dabei übersehen, dass in ihrem Fall
vielleicht eine einfachere, elegantere Lösung ohne den Einsatz von Design Pattern
sinnvoller gewesen wäre.
Design Pattern können den Code unnötig aufblähen, da durch das Verwenden des
Pattern (ev. unnötigerweise) ein allgemeineres Problem gelöst wird.
Entwurfsmuster garantieren nicht, dass der Entwurf gut ist. Insofern ist die Anwendung
zu vieler oder ungeeigneter Entwurfsmuster ein Antimuster.
4
Daneben gibt es weitere Pattern, welche in keine dieser Kategorien passen, wie zum
Beispiel die MVC, MVP oder MVVM Pattern (Architektur-Muster).
In verteilten oder Web-basierten Systemen gibt es weitere Pattern, wie zum Beispiel
Dependency Injection, Business Delegate, Service Locator, … (vgl. Literatur)
Weiter gibt es Pattern, die oft im Zusammenhang mit anderen Pattern verwendet
werden, so zum Beispiel das DAO Pattern, welches üblicherweise das (Abstract)
Factory Pattern, das Singleton Pattern und des Data Transfer Objekt kombiniert.
5
•Pattern Name und Klassifizierung: Ein beschreibender und eindeutiger Name, welcher
zur Identifizierung des Musters dient.
•Kategorisierung, Umfeld, Zweck: Eine Beschreibung des Umfelds und der Ziele hinter
dem Muster und der Grund für die Verwendung.
•Ein Szenario, bestehend aus einem Problem und einem Kontext, in welchem dieses
Muster verwendet werden kann.
•Lösung/Struktur/ Implementation: Eine grafische Darstellung des Musters. Klassenund Interaktionsdiagramme können für diesen Zweck verwendet werden sowie eine
Auflistung der nötigen Klassen/Objekte und deren Rollen im Muster
•Vorteile/Nachteile: Die Beschreibung der Ergebnisse, Nebenwirkungen und
Kompromisse welche mit dem Muster einhergehen.
•Verwendung: Beispiele von realen Anwendungen des Musters.
•Optional sind Pattern Varianten anzugeben sowie Verweise auf andere, verwandte
Muster.
6
7