Software Design Patterns Von: Manuel Pistel
Einführung Was ist ein Design Pattern in der Softwaretechnologie? Ein unfertiges Design (Template) Bietet Orientierung in der Softwareentwicklung Eine wiederverwendbare Vorlage für Problemlösungen Zugeschnitten auf die verschiedensten Arten von Programmen in unterschiedlichen Entwicklungsstadien
Hintergrund Begriff ursprünglich geprägt von Christopher Alexander (Architekt, Systemtheoretiker und Philosoph aus den USA) Ende der 1970er Jahre Alexanders Idee setzte sich in der Softwareentwicklung weit besser durch als in der Architektur Bekannteste Weiterführung der Idee von Design Patterns ist das Buch „Design Patterns – Elements of Reusable Object-Oriented Software“ (1994) von der „Gang of Four“ (bekannt als GoF - Book) „Gang of Four“: Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides
Arten von Patterns Architekturmuster – Lösungen für die Gesamtstruktur einer Software auf sehr abstrakter Ebene Entwurfsmuster – Lösungen für konkrete Probleme beim Softwaredesign Idiome – Lösungen für Probleme in einer bestimmten Programmiersprache
Entwurfsmuster - Struktur Mustername – Ein bin zwei aussagekräftige Wörter Problem – Welche Lösungen bietet das Muster und in welchem Kontext steht es Lösung – Aus welchen Elementen besteht das Muster Konsequenz – Vor- und Nachteile des Musters. Spezielle Implementierungsaspekte
Entwurfsmuster - Struktur Gültigkeitsbereich Klassenbasierte vs. Objektbasierte Muster Statisch vs. Dynamisch
Entwurfsmuster - Struktur Aufgabenbereich Erzeugungsmuster: Zuständig für die Objekterzeugung einer Software Strukturmuster: Regelt den Aufbau von Klassen und Objekten Verhaltensmuster: Beschreibt die Interaktion und Zuständigkeit von und zwischen Klassen und Objekten
Beispiele Lazy initialization (Erzeugungsmuster) Verzögerungstaktik für Objekterzeugung Adapter (Strukturmuster) Stellt Kompatibilität zwischen zwei sonst inkompatiblen Interfaces her Null Object (Verhaltensmuster) Lässt ein Objekt nichts tun
Nachteile Antimuster Die Einfachheit und Vielfalt der vorhandenen Design Patterns kann dazu verleiten „zu“ viele Entwurfsmuster zu verwenden und somit die Qualität des Projekts zu verschlechtern.
Quellen „Software Design Patterns - Template Method, State, Strategy“ von René Speck http://www.wikipedia.org
Danke für die Aufmerksamkeit