Im Jahre 1995 erschien dieser "Klassiker" über Entwurfsmuster. Wie im Schwerpunkt dieser Ausgabe beschrieben, handelt es sich dabei um katalogisierte Muster, welche immer wieder in Softwareprojekten auftreten. Dabei existieren mittlerweile einige Bücher auf dem Markt zu diesem Thema, doch die Autorengruppe um Erich Gamma (auch: Gang of Four, GoF) publizierte eins der ersten Bücher zu diesem Thema. Nach wie vor sind die Erkenntnisse aus diesem Buch höchst interessant, sowohl für den Fortgeschrittenen als auch Einsteiger in die objektorientierte Welt.
Jedes der 23 Muster wurde mit Pragmatismus und einer Art "Schablone" geschrieben. Zunächst wird der "Zweck" des Musters kurz dargestellt. Danach folgen die "Motivation" und die "Anwendbarkeit" des Musters. Der Abschnitt "Struktur" beschreibt das Muster dann detaillierter. Hier kommen auch Diagramme in der OMT-Notation zum Einsatz. Im nächsten Abschnitt werden die "Teilnehmer" beschrieben, dies sind in der Regel die teilnehmenden Klassen mit ihren Verantwortungsbereichen. In "Interaktion" wird dargestellt, in welcher Weise Sie zusammenarbeiten. Nach der Klärung der "Konsequenzen" kommen die Autoren endlich zur "Implementierung", wo Beispiele für die Anwendung aufgezeigt werden. Auch die Fallstricke in der Anwendung des Musters, die möglicherweise den positiven Aspekt in das schlecht verkehren können, werden ausgeführt. Abschließend geben die Autoren noch Hinweise zu "Bekannten Verwendungen" und "Verwandten Mustern".
Die Wahl der OMT als Notation für alle Diagramme im Buch ist nachvollziehbar: UML befand sich gerade im Entwicklungsstadium. Alle Diagramme in UML und auch die Sourcecodes zu den C++-Beispielen können über das Internet bezogen werden. Die Wahl der Sprache C++ ist sicherlich für den lernenden Java-Leser etwas schwierig, aufgrund der Übersichtlichkeit und sehr guten Dokumentation der Beispiele kann diese Hürde aber leicht genommen werden.
Das Buch empfiehlt sich aus meiner Sicht besonders für Programmierer, welche objektorientierte Programmierung, Analyse und Design bereits erfolgreich angewandt haben. Schließlich stellen die Muster eine abstrahierte Form des Wissens vieler Menschen dar. Die deutsche Übersetzung ist sehr gelungen. Leider war es nötig, den Sourcecode mit zu Übersetzen, da die Klassennamen einen Großteil über die Funktion der Klassen aussagen (z.B. "DarlehensSubjekt"). Dies kann natürlich beim Studium der über das Internet bezogenen Quelltext möglicherweise problematisch sein.




