Design Patterns
In der heutigen Buchrezension geht es um „Design Patterns – Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software“ der Autoren Erich Gemma, Richard Helm, Ralph Johnson und John Vlissides geht es um die für die Softwareentwicklung so interessanten Muster. Design Pattern werden gerne als für die Entwicklung komplexer Systeme wie Frameworks oder Bibliotheken genommen, sie sind bekannt und etabliert. Allen voran aber sind sie effizient und in vielen Situationen erleichtert man sich als Programmierer das Leben damit.
Design Patterns
Ein Design Pattern ist eine best practice Lösung für ein allgemeines Problem der Softwareentwicklung. Auf diese Probleme stoßen Entwickler rund um die Welt immer wieder, ein Design Pattern ist ein Bauplan oder ein Kochrezept für eine möglichst optimale Lösung. Wie diese in der jeweiligen Programmiersprache oder dem jeweiligen System umgesetzt wird bleibt dem Entwickler überlassen. Das Pattern ist somit eine theoretische Beschreibung und kein explizites Todo, obwohl das eine oder andere Pattern sehr oft sehr ähnlich umgesetzt wird. Ein Beispiel wäre ein Singleton. Es funktioniert immer gleich, kann aber beispielsweise in C++ auch recht unterschiedlich implementiert sein.
Das Buch
Bei dem Buch handelt es sich definitiv um kein Lernbuch. Es hat nicht die Aufgabe eine bestimmte Programmiersprache dem Leser beizubrignen noch liefert es eine detaillierte Anleitung wie man ein spezielles Design Pattern programmiert. Das Buch ist sehr theoretisch aufgebaut obwohl es auch zahlreiche C++ Code Beispiele gibt. In jedem Fall sind die Design Patterns der zentrale rote Faden der sich durch das ganze Buch zieht. Sie werden theoretisch Beschrieben und dazu bekommt man eine Übersicht wo man das jeweilige Muster einsetzen kann, worauf man achten muss und welche Vor- und Nachteile es besitzt. Ein Code Beispiel dient dazu, das theoretische Entwurfsmuster auch anhand eines Beispiels greifbar zu machen.
Die Entwurfsmuster im Detail
Im folgenden alle im Buch vorgestellten Design Patterns:
Entwurfsmuster
- Abstract Factory (Abstrakte Fabrik)
- Builder (Erbauer)
- Factory Method(Fabrikmethode)
- Prototype (Prototyp)
- Singleton (Singleton)
Strukturmuster
- Adapter (Adapter)
- Bridge (Brücke)
- Composite (Komposition)
- Decorator (Dekorierer)
- Facade (Fassade)
- Flyweight (Fliegengewicht)
- Proxy (Proxy)
Verhaltensmuster
- Chain of Responsibility (Zuständigkeitskette)
- Command (Befehl)
- Interpreter (Interpreter)
- Iterator (Iterator)
- Mediator (Vermittler)
- Memento (Memento)
- Observer (Beobachter)
- State (Zustand)
- Strategy (Strategie)
- Template Method (Schablonenmethode)
- Visitor (Besucher)
Fazit
Das Buch ist am Stück sehr schwer zu lesen. Das hat vor allem damit zu tun, dass es sehr theoretisch gehalten ist. Die Sprache ist dabei wie in einem Lehrbuch recht trocken. Die Beschreibungen sind vollständig und umfangreich, manchmal aber selbst mit dem Praxisbeispiel nur recht schwer zu verstehen. Am besten eignet sich das Buch meiner Meinung nach als Nachschlagewerk. Bekannte Design Pattern kann man in der vollen Tiefe studieren und weitere Einsatzgebiete kennenlernen. Bei neuen, dem Leser unbekannten Muster, dient das Buch sehr gut zur Erklärung. Das vollständige Verständnis eines Design Patterns muss man sich aber selbst anhand eines eigens entwickelten Beispiels erarbeiten. Das Buch dient dabei gut als Hilfestellung.
Ich habe mir beim Lesen besonders die mir bekannten Pattern Adapter, Proxy, Abstract Factory, Singleton, Iterator und Observer angesehen. Sofern man bereits den Einsatzbereich kennt lässt sich aus der Erklärung sehr gut nachvollziehen was der Gedanke hinter dem Einsatz des jeweiligen Patterns war und weshalb man im Code auf bestimmte Merkmale trifft.
Welche Design Patterns kennt ihr beziehungsweise habt ihr selbst schon eingesetzt?
Ich habe Ihre Webseite „Developer Blog“ entdeckt, weil ich mich fuer das Programmieren von Apps interessiere! Was ich gleich schon gut fand war, dass bei Ihnen alles auf deutsch sichtbar war gegenueber vielen anderen Anbietern! Ihr Blog ist echt super kompetent audgebaut! Ich benutze ihn um das Programmieren zu erlernen und besuche im 2. HJ 2016 noch ein Kurs der guten alten deutschen Volkshochschule! Vielen Dank, -TOP-
danke für das Lob!
Auch ein Gutes Buch zum Thema ist Entwurfsmuster von Kopf bis Fuß. Es ist zwar Java passieren aber lässt sich gut lesen. Konnte sogar das ein oder andere mal Lachen. Ich Programmiere in C# und C++ und habe Trotzdem alles verstanden. Entwurfsmuster ist fasst sprachen unabhängig.
Toller Blog und super das er in Deutsch ist leider sind das viel zu wenige.
Danke! Ja das sehe ich auch jeden Tag an den Zugriffszahlen. Obwohl ich selbst vieles in Englisch suche gibt es doch auch genug die das immer noch Deutsch tun und hin und wieder auch auf meinem Blog landen.