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 <null> 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

Geschrieben von Robert Bullinger

Veröffentlicht in #Methoden und Standards

Kommentiere diesen Post