Buchbesprechung: Dive Into Design Patterns

Sich wiederholende Problemstellungen kennzeichnen den Entwickleralltag. Design Patterns leisten wertvolle Hilfe. Dieses Buch blickt hinter deren Prinzipien.

In Pocket speichern vorlesen Druckansicht
Buchbesprechung: Dive Into Design Patterns

(Bild: dawou486/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Michael Müller

Alexander Shvets
Dive Into Design Patterns

Refactoring.Guru 2019
409 Seiten, 19,95 Euro (E-Book PDF, EPUB, MOBI, KFX)

Design Patterns sind Musterlösungen für wiederkehrende Probleme. Im Unterschied zu Algorithmen lassen sie sich jedoch nicht direkt nutzen, sondern sind eher als eine Art Best Practices zu verstehen. Als solche erweitern die Muster nicht nur das fachliche Repertoire der Entwickler, sondern auch das Vokabular: "Für den Datenbankzugriff nutzt du am besten ein Singleton. Und für die Verteilung der Informationen mittels unserer App ist ein Observer das Mittel der Wahl."

Wer bereits mit Design Patterns vertraut ist, verbindet mit "Singleton" und "Observer" sofort einen entsprechenden Lösungsansatz. Und obwohl die Kenntnis von Design Patterns überaus hilfreich ist, trauen sich viele Entwickler nicht so recht daran – gelten sie manchen doch als höhere Schule der Programmierkunst.

Im vorliegenden Buch führt Alexander Shvets die Leser sachte, aber dennoch umfassend an das Thema heran. Daher eignet sich Dive Into Design Patterns sowohl für Neueinsteiger in das Thema, wie auch für Entwickler, die ihre Kenntnisse gründlich auffrischen möchten. Noch bevor es im Detail um Design Patterns geht, widmet sich Shvets zunächst einmal in kompakter Form den Grundlagen der objektorientierten Programmierung – nebst "guten" Design Prinzipien.

Dive Into Design Patterns: An E-book on design patterns and the principles behind them

(Bild: Refactoring.Guru)

Diese Herangehensweise mag Anhänger des Vorurteils bestärken, Design Patterns und objektorientierte Programmierung hingen direkt zusammen, tatsächlich finden sich solche Best Practices aber für alle Programmiersprachen.

Die "Gang of Four" (GoF: Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides) hatten in ihren Überlegungen zu Design Patterns bemerkt, dass sie für nichtobjektorientierte Sprachen andere Pattern gefunden hätten. Doch auf solche Muster geht Shvets nicht ein. Wie andere vor ihm folgt er dem Katalog der GoF. Das mag nicht mehr ganz zeitgemäß erscheinen, ignoriert er doch so manch anderes Muster, doch für die vorgestellten Muster ist ein essenzielles Verständnis der Objektorientierung vorteilhaft – und so sind die ersten Kapitel des Buchs als Einstieg sinnvoll angelegt.

Auch wenn Shvets sich auf alte Bekannte beschränkt, so überführt er diese verständlich in die aktuelle Sprachlandschaft. Dabei präsentiert er die Musterlösungen nicht in einer konkreten Programmiersprache, sondern anhand einer Pseudosprache. Vorbereitend geht er näher auf die zu lösende Problemstellung ein und erläutert die Lösungsstrategien anhand von UML-Diagrammen. Problem und Lösung sind meist sehr anschaulich visualisiert, teilweise comicartig.

Während der Text schnörkellos beschreibt, worum es geht, unterstützen die Illustrationen die bildhafte Veranschaulichung. Shvets folgt dabei zumeist der Reihenfolge "Problem", "Lösung", "Reale Welt-Analogie", "Struktur", "Pseudocode", "Anwendung", "Implementierung" sowie einem abschließenden "Pro und Kontra". Er geht darüber hinaus auch auf Ähnlichkeiten sowie Gegensätze anderer Muster ein. Leser finden dadurch nicht nur Wissen über Design Pattern, sondern erhalten auch Hilfestellung, wann ein Muster anzuwenden ist – oder eben nicht.

Der verwendete Pseudocode mag auf den ersten Blick ein wenig gewöhnungsbedürftig erscheinen, doch wird er schnell verständlich. Konkreter wird Shvets in den beigefügten Codebeispielen. Je nach Programmiersprache zeigt er entweder konzeptionelle oder reale Beispiele – in einigen Sprachen auch beides. Insgesamt hinterlässt das Buch damit einen runden, lesenswerten Eindruck.

Michael Müller ist als Bereichsleiter Softwareentwicklung der InEK GmbH verantwortlich für Projekte im Web-, Java- und .NET-Umfeld. Daneben betätigt er sich als freier Autor und verfasst Fachartikel zu diversen Entwicklungsthemen sowie Buchrezensionen. (map)