Software Design Patterns
Download
Report
Transcript Software Design Patterns
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