Design Pattern
Veröffentlicht auf 15. Februar 2016
Entwurfsmuster sind meiner Erfahrung nach vielfach unterschätzte Qualitätsmerkmale einer Software. Für manche Kritiker sind sie nur das Sahnehäubchen oder der schöne aber überflüssige Teil des Softwarecodes, für mich sind sie auch eine Grundvoraussetzung für wartbaren und testbaren Code, ohne die alleinige Existenz als Wunderwaffe preisen zu wollen.
Entwurfsmuster sind allgemein erprobte Lösungen von immer wiederkehrenden Problemen in der Softwarearchitektur und -entwicklung. Das Rad neu zu erfinden ist nicht nötig und meistens eine schlechte Idee, da die Muster meistens die besseren Lösungen bieten.
Um die Muster einordnen zu können, werden sie nach folgenden Typen unterscheiden:
- Erzeugungsmuster (Creational patterns) zur Entkopplung
- Strukturmuster (Structural patterns) zur Vereinfachung
- Verhaltensmuster (Behavioural patterns) für mehr Felxibilität
- Nebeläufigkeitsmuster (Concurrency patterns) für mehr Sicherheit bei parallelen Arbeiten
Bekannt geworden sind die Entwurfsmuster vor allem durch die Arbeit der Gang of Four (GoF) und deren Buch, das ich hiermit unbedingt empfehlen kann: Entwurfsmuster von Kopf bis Fuß
Folgende Entwurfsmuster sollte jeder Entwickler einmal kennen gelernt haben:
- Adapter und Fassade: Vereinheitlicht Schnittstellen. (Der deutschlandweite Online-Pizza-Lieferservice)
- Beobachter: Werden bei Änderungen benachrichtigt. (Der Newsletter oder Flyer für Kunden)
- Besucher: Objekt und Funktion werden getrennt. (Mario macht aus Nudelteig Lasagne, Luigi Pasta)
- Dekorator: Erweitert ein Objekt dynamisch. (Von der Margerita zur Prosciutto)
- Fabriken: Bauen mehrfach verwendete oder verwandte Objekte nach gewünschter Konfiguration. (Der Pizzabäcker)
- Iterator: Ermöglicht den sequentiellen Zugriff. (Die Pizza Zutaten)
- Schablone: Enthält die Logik, lässt aber die Arbeit andere erledigen. (Der Chef der Pizzeria)
- Singleton: Sorgen dafür, dass es ein Objekt auch wirklich nur einmal gibt. (Die geheime Würzmischung)
- Null Objekt: Liefert niemals
sondern immer ein Standart-Objekt (Pizza Margherita)
Weitere Links:
https://en.wikipedia.org/wiki/Software_design_pattern
https://de.wikibooks.org/wiki/Muster
http://www.tutorialspoint.com/design_pattern/design_pattern_overview.htm
/image%2F1093946%2F20160225%2Fob_122d53_rb-100x100.jpg)