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