Parallel zu meiner Arbeit am patternsBuch habe ich am patternCoder gearbeitet. Der patternCoder ist ein Tool, mit dem Design Patterns gelehrt werden können. Ursprünglich war der patternCoder ein Plug-In für BlueJ. Ich habe die Quellen überarbeitet und eine Stand-Alone-Anwendung entwickelt.
Alle, die am patternsBuch beteiligt waren (Fachgutachter, Lektorat und Autor), haben sehr viel Zeit und Mühe in das Projekt gesteckt, um ein möglichst fehlerfreies Buch zu erstellen. Trotz aller Bemühungen lassen sich Fehler nicht immer vermeiden. Hier liste ich die später gefundenen Fehler auf:
Seite | Korrektur |
---|---|
40 | Die Listingüberschrift 3.6 hätte korrekt lauten müssen: Observer-Liste kopieren im Projekt „Observer_07“. |
40 | Listing 3.6: nach der öffnenden geschweiften Klammer muss this.wohnung = wohnung; stehen. |
75 | Im Klassendiagramm gibt es das Interface Zustand; es handelt sich im Quelltext jedoch nicht um ein Interface, sondern um eine abstrakte Klasse. |
185 | Der Quelltext der Methode remove() lautet richtig: public void remove(Knoten kind) { kinder.remove(kind); kind.setParent(null); this.setCacheIsValid(false); } |
Design Patterns beschreiben „best practices“ und gutes Design, sie halten Erfahrung und Wissen auf eine Weise fest, die es anderen Programmierern ermöglicht, dieses Wissen für sich zu nutzen. Sie helfen, wiederkehrende Probleme zu lösen. Der patternCoder trägt dieses Wissen zusammen.
Der patternCoder listet viele Patterns, darunter die der Gang of Four, auf und lässt den Anwender ein Pattern in die Detailansicht auswählen.
Wählen Sie ein Muster aus, um seine Beschreibung zu erhalten.
In der Detailansicht eines Musters werden alle Klassen einer beispielhaften Realisierung aufgeführt. Angezeigt werden eine Liste aller beteiligten Klassen sowie das Klassendiagramm der Realisierung. Wenn der Anwender auf eine Klasse klickt, wird der Quelltext der Klasse angezeigt.
Die Quelltexte lassen sich exportieren und können in jeder beliebigen IDE verwendet werden. Damit eignet sich der patternCoder, um Studierenden den Einstieg in die Materie zu erleichtern. Erfahrenen Programmierern dient der patternCoder als „Spickzettel“. Lehrende setzen den patternCoder im Unterricht oder in der Vorlesung ein; sie können eigene Projekte definieren.