Skip to content

Buch: Design Patterns mit Java

Titel

Design Patterns mit Java

Editor

Florian Siebler

Sprache

Deutsch

Genre

Fachbuch

Herausgeber

Carl Hanser Verlag, 2014

Seitenanzahl

311 Seiten

Wer bei der „Gang of Four“ zuerst an die Daltons denkt, hat sicherlich wenig mit Entwurfsmustern (Englisch: Design Patterns) zu tun. Wenn man aber zur programmierenden Zunft in einer objektorientierten Sprache gehört, sind Entwurfsmuster oft das A und O und sollten von jedem zumindest einmal gehört worden sein. Die Rezension soll zeigen, ob das Buch „Design Patterns mit Java“ dabei helfen kann.

Geschichtliches

Entwurfsmuster reichen (in der Zeitrechnung der Programmierung) schon ziemlich lange zurück. Es handelt sich dabei um Muster, die man zur Lösung immer wiederkehrender Probleme und Fragestellungen nutzen kann. Auch wenn die Gang of Four (kurz GoF), dazu gehören Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides, die Entwurfsmuster nicht erfunden haben, haben sie 1995 mit ihrem Buch „Design Patterns. Elements of Reusable Object-Oriented Software” zumindest sehr zu deren Verbreitung beigetragen.

In dem GoF-Buch sind 23 Design-Patterns beschrieben mit Beispielanwendungen in der Programmiersprache C++, die der Autor Florian Siebler in seinem Buch „Design Patterns mit Java“ ebenfalls aufgreift, erklärt und beispielhaft mit Java umsetzt.

Buchaufbau

Das Buch ist, in Anlehnung an die Gang of Four, in 24 Kapitel untergliedert: 23 für Entwurfsmuster und eines für Designprinzipien, darunter auch ein Teil der SOLID-Prinzipien. Die Kapitel bauen dabei so gut wie gar nicht aufeinander auf, sodass man nicht gezwungen ist, das Buch von vorne nach hinten durchzulesen. Man kann sich auch einfach nur mit einem Kapitel beschäftigen, wenn einen ein bestimmtes Entwurfsmuster interessiert.

In jedem Kapitel wird das jeweilige Entwurfsmuster vorgestellt und mindestens ein kleines Beispiel dazu gezeigt. In manchen Kapiteln wird dabei auch erst eine naive Implementierung in Java gezeigt und auf deren Vor- und Nachteile hingewiesen. Danach folgt meist eine Verbesserung der Umsetzung oder eine alternative Lösung. Dies ist vor allem in den ersten zwei Kapiteln zum Singleton-Pattern und Observer-Pattern in Bezug auf nebenläufige Verwendung sehr hilfreich.

Zusätzlich zeigt Florian Siebler auch immer eine Verwendung des Entwurfsmusters in einer der Java-Bibliotheken auf, sodass Leser sofort sehen, dass die Muster keine theoretischen Überlegungen sind, sondern auch in der realen Welt zum Einsatz kommen.

Die Listings und Beispiele sind dabei oft nur gekürzt enthalten. Der Autor verweist dazu immer wieder auf die Webseite zum Buch patternsBuch.de.

Etwas überraschend ist der Abschluss des Buches, denn es gibt keinen. Nach den 23 Entwurfsmustern kommt der Index und es ist Schluss.

Zielgruppe

Das Buch heißt nicht umsonst „Design Patterns mit Java“, denn Java wird zum Verständnis der Muster bzw. deren Umsetzung vorausgesetzt. Vor allem die Hinweise auf die Verwendung der Entwurfsmuster in den Java-Bibliotheken verstehen oft nur die Java-Entwickler, welche die jeweilige Bibliothek auch schon im Einsatz hatten. Das macht ein Teil des Buches für Nutzer anderer Programmiersprachen leider hinfällig, da man nicht immer folgen kann und diese Abschnitte dann eher überspringt.

Dennoch kann man auch ohne (große) Java-Kenntnisse den Umsetzungen folgen und diese in einer Sprache seiner Wahl nachprogrammieren. Von den online bereitgestellten Beispielen hat man in dem Fall natürlich sehr wenig.

Die online bereitgestellten Beispiele zeigen aber auch, dass die Zielgruppe am besten über einen Internetanschluss verfügt, wenn man das Buch durcharbeiten möchte. Denn ansonsten fällt es manchmal etwas schwer, nur anhand der Code-Auszüge der Umsetzung zu folgen.

Design Patterns en detail

Florian Siebler geht sehr gut auf die einzelnen Entwurfsmuster ein. Wie oben schon erwähnt zeigt er nicht nur verschiedene Realisierungen mit deren Vor- und Nachteilen auf, sondern geht auch auf Besonderheiten wie Nebenläufigkeit ein – etwas, was bei anderen Design-Patterns-Büchern gerne unterschlagen wird. Die vorgestellten Lösungen sind dabei natürlich Java-abhängig und in anderen Sprachen muss man sich bei Nebenläufigkeit andere Lösungen ausdenken bzw. die vorgestellte Idee zumindest anders umsetzen. Sehr schön ist auch, dass er auf sogenannte Anti-Patterns eingeht, zu denen sehr viele Entwickler beispielsweise das Singleton-Pattern zählen.

Für die Erklärung der Patterns benutzt Siebler mehr Text und wenig Klassen-Diagramme. Als Grund hierfür führt der Autor an, dass die Diagramme der unterschiedlichen Entwurfsmuster oft sehr ähnlich bzw. sogar identisch aussehen. Einem Einsteiger in Entwurfsmuster bringen diese Diagramme daher wenig. So werden sie auch nur gezielt dort eingesetzt, wo es der Übersicht hilft. Dennoch wäre eine Gesamtübersicht der Entwurfsmuster mit deren Klassenbeziehungen am Ende des Buches schön gewesen.

Ein Problem bei der Umsetzung der Entwurfsmuster im Buch ist aber, dass nicht jede Realisierung sofort klar ist. Beispielsweise wird beim State-Pattern eine Lösung eingesetzt, in der ein Zustand das Hauptobjekt und seine Folgezustände kennen muss. Da man normalerweise eine lose Koppelung anstrebt, ist das verwunderlich, wird aber später erklärt. Dies passiert dem Autor an vielen Stellen im Buch, dass die Motivation für eine Umsetzung oder einen Exkurs (wie z. B. die Tabellenmodelle auf Seite 45) erst ganz am Ende des Abschnitts erklärt werden. Als Leser fragt man sich aber viel eher, wieso etwas auf eine bestimmte Art und Weise gemacht wird oder was dieser Exkurs genau bringen soll.

Ob die Auswahl der Patterns sinnvoll ist, darüber lässt sich sicherlich streiten. Florian Siebler orientiert sich an den Entwurfsmustern der Gang of Four, was so schlecht nicht sein kann. Dabei wird aber beispielsweise auch das Interpreter-Pattern erklärt, was so speziell und komplex ist, dass es vor allem für Einsteiger schwer zu verstehen ist.

Fazit

Mit dem Buch „Design Patterns mit Java“ will Florian Siebler laut Untertitel eine „Einführung in Entwurfsmuster“ geben. Vergleicht man direkt mit dem GoF-Buch, was ja als Vorlage diente, so ist ihm das gelungen. Wo das GoF-Buch doch eher trocken herüberkommt, gibt es bei Siebler meist einfach zu verstehende Beispiele, die teilweise mit Pop-Culture-Referenzen gespickt sind. So liest sich das Buch recht flüssig und unterhaltsam.
Ohne Java-Kenntnisse fällt es aber oft schwer zu folgen. Vor allem die Nachweise in den Java-Bibliotheken sind nicht immer verständlich, wenn man die Bibliothek noch nie genutzt hat. Glücklicherweise sind die Nachweise aber nur ein Zusatz. Die Entwurfsmuster werden immer auch an einem eigenen Beispiel erprobt.

Diese Beispiele wiederum werden leider nur zum Teil abgedruckt. Es ist so nicht möglich, ohne Internetzugang allen Ausführungen zu folgen bzw. diese nachzuimplementieren. Teilweise empfindet man die zahlreichen Verweise auf die Buchwebseite patternsbuch.de sogar als störend, weil sie den eigentlichen Gedanken- bzw. Arbeitsfluss unterbrechen.

Und wenn es um Entwurfsmuster und Java geht, drängt sich ein Vergleich mit dem Buch „Entwurfsmuster von Kopf bis Fuß“ („Head First Design Patterns“) natürlich auf. Hier hat das Head-First-Buch nicht nur den Kopf, sondern auch die Nase vorn. Didaktisch ist es sowieso nicht zu schlagen, aber alle Beispiele sind so einfach, verständlich und vor allem unterhaltsam gehalten, dass das Lesen und Durcharbeiten einfach nur Spaß macht. Vor allem können auch Nicht-Java-Programmierer das Head-First-Buch fast ohne Probleme durcharbeiten (wenn auch nicht ganz).

Wer also eine etwas nüchterne, aber dennoch unterhaltsame Erklärung der GoF-Entwurfsmuster sucht und diese auch noch mit Java umsetzen will, kann ohne Bedenken zum Buch von Florian Siebler greifen. Wer dagegen keine Java-Kenntnisse hat und das eher trockene GoF-Buch mit seinen C++-Beispielen nicht durcharbeiten möchte, dem sei „Entwurfsmuster von Kopf bis Fuß“ empfohlen (am besten im englischen Original, was weniger Fehler aufweist).

Buch: The Hunger Games

Titel

The Hunger Games

Autor

Suzanne Collins

Sprache

Englisch

Genre

Fantasy

Herausgeber

Scholastic, 2008

Seitenanzahl

458 Seiten

In naher Zukunft ist die Menschheit durch zahlreiche Katastrophen und Kriege gespalten. Aus Nordamerika wurde Panem, das in mehrere Distrikte unterteilt ist. Nachdem ein Aufstand der Distrikte gegen die Obrigkeit niedergeschlagen wurde, wurden die Hunger-Spiele eingeführt. Jedes Jahr werden aus den zwölf Distrikten ein Mädchen und ein Junge ausgewählt, die in einer Arena gegeneinander antreten müssen. Nur der letzte Überlebende gewinnt.

Als bei den Ziehungen für die Spiele der Name „Primrose Everdeen“ gezogen wird, stellt sich die 16-jährige Katniss vor ihre vier Jahre jüngere Schwester und nimmt ihren Platz stattdessen ein. Für Katniss ist es ein Kampf ums Überleben und sie rechnet nicht damit, dass sie eine Chance hat. Ihre heimliches Jagen mit dem jungen Gale in den Wäldern von Distrikt 12 sind aber ein großer Vorteil. In der Arena muss sie mit dem jungen Peeta aus Distrikt 12 zusammenarbeiten, um das Überleben zu gewährleisten.

Inzwischen sollte „The Hunger Games“ („Die Tribute von Panem“) durch den Film fast jedem bekannt sein. Ich habe die Filme bisher absichtlich nicht gesehen, weil ich zuerst die Bücher lesen wollte. Allein die Trailer haben aber ausgereicht, dass mein Bild von Katniss Everdeen schon dem von Jennifer Lawrence entspricht, was eigentlich etwas schade ist.

Das Buch ist aus der Sicht von Katniss geschrieben, sodass man als Leser nur ihre Handlungen sieht und sich dabei ein bisschen wie einer der Zuschauer der Hunger-Spiele fühlt. Im Gegensatz zu den Zuschauern hält man aber auch einen Einblick in Katniss' Gedanken und Gefühle, wo ich mir einfach nicht vorstellen kann, wie dies im Film korrekt dargestellt werden kann, da der Unterschied zwischen Katniss Handeln und ihren Gedanken oft sehr groß sind.

Gerade das zu beschreiben gelingt Suzanne Collins großartig. Wo man außen nur eine sehr emotionslose, harte Frau sieht, handelt es sich im Inneren um ein verletztes, junges Mädchen, dass nach dem frühen Tod ihres Vaters die ganze Familie durch illegales Jagen ernähren musste. Um nicht noch einmal so verletzt zu werden, schottet sie sich von allen ab, einzig ihre Schwester liegt ihr noch am Herzen.

Mir hat das Buch daher auch sehr gut gefallen und ich habe es sehr schnell in zwei längeren Zugfahrt durchgelesen. Der zweite Teil „Catching Fire“ liegt bereits parat für die nächste Zugfahrt.

PS: Und endlich mal wieder ein echtes Buch in den Händen halten und lesen ist schon eine Besonderheit und nach wie vor ein anderes – und in meinen Augen besseres – Lesegefühl.

Buch: Tithe

Titel

Tithe

Autor

Holly Black

Sprache

Englisch

Genre

Fantasy

Herausgeber

Simon & Schuster, 2008

Seitenanzahl

179 Seiten, EPUB

Als der Traum einer eigenen Band für Kayes Mutter in der Stadt nicht wahr wird, müssen beide wieder in die Vorstadt von New Jersey zu Kayes Großmutter ziehen. Dort trifft Kaye nicht nur auf ihre alte Schulfreundin Janet sondern auch auf die Elfen und Feen aus ihrer Kindheit, mit der sie eigentlich gar nichts mehr zu tun haben wollte. Ein Kampf steht an und Kaye steht in der Mitte.

„Tithe“ ist der Erstling von Holly Black und man merkt es leider auch. Sprachlich ist das Buch sehr einfach gehalten, einzig die ausgedachten Begriffe aus der Feenwelt sind etwas komplizierter. Zum Zielpublikum gehören deshalb auch eher junge Leser und Leserinnen. Die Geschichte selbst nimmt zwar ein paar Wendungen, reißt aber nicht wirklich mit. Vor allem die Motivation von Faye bleibt komplett im Verborgenem. Ihre Gedanken und Gefühle werden nicht richtig transportiert und ihre Entscheidungen wirken sehr sprunghaft. Sicherlich ist es ein kurzer Buch und man kann nicht alles beschreiben, aber ich habe keinerlei Zugang zur Protagonisten gefunden.

„Tithe“ war Teil des dritten Humble eBook Bundle. Ich habe es hauptsächlich gelesen, weil die Kurzgeschichten sowie die Zombies vs. Unicorns Anthology mir sehr gut gefallen haben. Für „Tithe“ gibt es aber keine Empfehlung von mir. Auf Deutsch ist das Buch unter dem Titel Elfentochter erschienen und hat mit Elfenkönigin wohl auch einen Nachfolger. In der Übersetzung reißen die Bücher vielleicht mehr mit.

Buch: To Be Or Not To Be – A chooseable-path adventure

Titel

To Be Or Not To Be

Autor

Ryan North

Sprache

Englisch

Genre

Abenteuer

Herausgeber

Breadpig, 2013

Seitenanzahl

1008 Seiten, EPUB

Von Hamlet haben sicherlich die meisten schon gehört. Shakespeares Stück über Verrat, Intrige und Missverständnissen führt fast zum Tod aller Hauptcharaktere. Dass man diese Story etwas aufpeppen kann, zeigt Ryan North in seinem Buch „To Be Or Not To Be“. Denn nicht nur Hamlets Sichtweise wird dargestellt, auch aus dem Blickwinkel Ophelias kann man die Geschichte erleben. Oder will man doch lieber in die Rolle von Hamlet Sr., König von Dänemark, schlüpfen? … Was keine gute Idee, denn man stirbt nach zwei Seiten! Was habt Ihr erwartet? Es ist immer noch Hamlet!

Die Besonderheit des Buches ist, dass es ein „chooseable-path adventure“ ist. Das heißt, im Laufe der Geschichte kann der Leser Entscheidungen treffen, wie der Charakter sich verhalten soll. Wählt man Option A, geht es auf Seite X weiter und bei Option B auf Seite Y. Wenn einem der weitere Verlauf der Geschichte nicht gefällt, kann man leicht zu einer vorherigen Entscheidungen gehen und dort eine andere Abzweigung wählen.

Laut Aussage des Autors gibt es im Buch 3.001.181.439.094.525 Entscheidungswege, aber immerhin nur ein paar Dutzend verschiedene Enden, wie die Geschichte ausgehen kann. Die Möglichkeit, Hamlet ganz „normal“ zu lesen, gibt es auch, in dem man die vorselektierten Antworten wählt und damit die Geschichte so erlebt, wie Shakespeare sie geschrieben hat. Nur in etwas modernerer Sprache … und mit mehr Piraten.

Das Buch startet daher auch mit der Auswahl des Charakters: Hamlet, Ophelia oder Hamlet Sr. Dass North vor allem Ophelia bevorzugt, wird man merken, wenn man ihren Weg wählt. So kann man sich beispielsweise aus Dänemark und von Hamlet verabschieden und lieber als Assassine den Erfolg im Süden Europas suchen. Oder man nimmt selbst das Schwert in die Hand und tötet einfach jeden Hauptcharakter bevor Hamlet auf die Idee kommt. Oder man kämpft gegen den einfallenden schwedischen Prinzen Fortibas und wird bei Erfolg Königin von Dänemark. Der Humor ist dabei großartig. Ich musste wirklich auf jeder zweiten Seite grinsen oder laut lachen. North nimmt sich viele Freiheiten bei der Erzählung, was der Geschichte sicherlich nicht schadet.

Die zahlreichen Enden (die ich sicherlich nicht alle gesehen habe) sind alle von verschiedenen (mehr oder weniger) bekannten Webkünstlern illustriert. Interessanterweise stirbt man wohl in 90% der Fälle am Ende, aber Hamlet soll sich eben treu bleiben. Das reale Buch (bzw. ein Farb-E-Book-Reader) zeigt die Illustrationen dann auch noch in voller Farbpracht.

Die Auswahl einer Entscheidung klappte in meinem E-Book-Reader recht gut. Ab und zu kam ich mal auf die falsche Taste oder den falschen Link, aber normalerweise ging es. Problematisch war eher das Zurückgehen zu einer vorherigen Entscheidung. So wie im echten Buch musste man sich die Seite merken (bzw. ein Lesezeichen setzen), von der man gekommen ist, um später von dort aus seinen Weg neu zu wählen. Einen „Zurück-zur-letzten-Seite“ gibt es leider nicht.

Autor Ryan North ist vor allem durch seine Dinosaur Comics im Internet bekannt. Wer meinen Blog liest, ist aber auch sicher auf die Rezension von Machine of Death gestoßen. „To Be Or Not To Be“ ist eine Kickstarter-Kampagne gewesen, die weit über dem eigentlich Betrag eingenommen hat. Das Buch war im dritten Humble eBook Bundle enthalten. Eine deutsche Übersetzung gibt es leider nicht.

Ich kann das Buch nur jedem empfehlen, der den Geschichtenverlauf gerne selbst wählt und der Hamlet einmal anders erleben möchte.