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