Gelesen: Design Patterns Explained

Martin Kompf

Das Buch von Alan Shalloway und James R. Trott verspricht eine »Neue Perspektive des Objektorientierten Designs«.

Eine kritische Phase im Softwareentwicklungsprozess ist die Entscheidung für ein bestimmtes (objektorientiertes) Design in Abhängigkeit von einer mehr oder weniger konkreten Aufgabenstellung. Das betrifft insbesondere die Definition der zu realisierenden Objekte und ihrer Beziehungen untereinander. An dieser Stelle können Entwurfsmuster (englisch: Design Patterns) weiterhelfen. Sie beruhen auf der Annahme, dass sich komplizierte und schwer durchschaubare Problemstellungen in weniger komplexe Teilaufgaben zerlegen lassen, für die es dann vorgefertigte Lösungen gibt. Die Analogie eines Softwaredesigners zu einem Architekten, der ja komplizierte Gebäude durch das Zusammenfügen von einfachen Steinen realisieren kann, liegt auf der Hand und wird im Buch öfters angesprochen.

Die Literatur zu Design Patterns wurde in der Vergangenheit hauptsächlich für Spezialisten geschrieben. Man muss schon ein relativ gestandener Softwarespezialist sein, um mit den gängigen Standardwerken über Patterns etwas anfangen zu können. Nicht so das vorliegende Buch: Es setzt ausdrücklich keine Kenntnisse im objektorientierten Design oder einer Programmiersprache voraus. Vielmehr beginnt es mit einer Einführung in den Entwicklungsprozess. Das Statement »Anforderungen an eine Software ändern sich ständig« zeigt, dass es sich bei den Autoren um gestandene Praktiker handelt. Auch ist ihr Stil sehr flüssig lesbar, mit gängigen Englischkenntnissen ausgestattet, ist das Buch auch für den deutschen Leser ohne Wörterbuch zu verstehen.

Bevor es an die Erklärung des ersten Patterns geht, werden noch die wichtigsten Elemente der Unified Modelling Language (UML) erläutert. Die Vorstellung der Patterns erfolgt sinnvollerweise in der Reihenfolge steigender Komplexität. Wann immer möglich, ziehen die Autoren praktische Beispiele zur Erklärung heran, deren Ausführlichkeit nichts zu wünschen übrig lässt. Codeausschnitte in Java und C++ runden die Beschreibungen ab. Wie der Untertitel des Buches verspricht, dürften sich dabei wohl den meisten Lesern neue Perspektiven öffnen. So wird zum Beispiel die klassische (implementierungslastige) Objektdefinition: »Bündel aus Daten und Methoden« auf die allgemeinere Sicht »Ein Objekt ist eine Entität mit einem speziellen Verhalten« erweitert.

Besonders positiv fällt beim Lesen des Buches auf, dass die Autoren den Einsatz von Patterns beim objektorientierten Design von Software wirklich erklären und nicht nur die fertige Lösung präsentieren. Das Buch kann daher uneingeschränkt für alle Softwareentwickler empfohlen werden, deren Aufgabe das Design komplexerer Systeme ist.

Alan Shalloway and James R. Trott: Design Patterns Explained, First Printing, Addison-Wesley, 2001, ISBN 0-201-71594-5 (in englischer Sprache)