Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Suche Buch zu Design Patterns vornehmlich "visitor patt
Wenn du die Bibel von der GoF schon hast, dann ist "Entwurfsmuster anwenden" von John Vlissides (einer der GoF) eine gute Weiterführung, speziell auf das Visitor Pattern wird sehr genau eingegangen.
Wenn du die Bibel von der GoF schon hast, dann ist "Entwurfsmuster anwenden" von John Vlissides (einer der GoF) eine gute Weiterführung, speziell auf das Visitor Pattern wird sehr genau eingegangen.
Die Namen der Muster in der deutschen Übersetzung (hab keine andere) sind etwas verwirrend, "Erbauer", "Fliegengewicht", "Befehl", "Zustand", etc. pp., während man normalerweise (und vor allem in Internet) auf die englischen Begriffe stösst.
Ansonsten hab ich keine Probleme damit, und diese 23 Namen hat man auch schnell in Deutsch und Englisch gelernt
Ich habe sowohl "Entwurfsmuster von Kopf bis Fuß" als auch "Entwurfsmuster . Elemente wiederverwendbarer objektorientierter Software".
Das erstere ist ein Buch das sehr nett zu lesen ist. Es ist didaktisch extrem gut gemacht. Also von mir eine Empfehlung für alle die mit Design Patterns noch nicht wirklich was zu tun hatten und zum Teil auch erst einmal an den Sinn und Zweck eines bestimmten Patterns herangeführt werden müssen.
Die gute Didaktik dieses Buches ist aber gleichzeitig sein größter Nachteil, den als Nachschlagewerk eignet es sich nur bedingt. Fazit: Perfekt für die ersten Schritte im Bereich Design Patterns wenn man bereits erste Gehversuche mit Java absolviert hat. Für andere Sprachen als Einsteigerbuch oder für fortgeschrittene Programmierer als Nachschlagewerk aber ungeeignet.
Das zweite ist dann eher für den fortgeschrittenen Programmierer, was auch schon die gewählte Sprache für die Beispiele zeigt. Das Buch zeigt kurz auf worum es bei dem entsprechenden Pattern geht (Zweck, Motivation, Anwendbarkeit, UML Klassen- und e.v Zustands -diagramm). Dann folgt ein Implementierungsbeispiel in C++.
Es wird in diesem Buch, anders als bei "...von Kopf bis Fuß", nicht von einem Design-Problem auf ein Design-Pattern geschlossen. Daher sollte der Leser bei diesem Buch eher wissen was er eigentlich möchte und/oder aus einem UML Klassendiagramm ableiten können ob ein enstsprechendes Pattern für seine Ziele nutzbar ist. Fazit: Als Einsteiger/Lehrbuch eher ungeeignet - als Nachschlagewerk für fortgeschrittene Programmierer (nicht nur für C++ Programmierer) wirklich sehr gut.
So habe mal in beiden Büchern gestöbert doch vermisse ich für Beuscher Muster praktische Anwendungsfälle, kennt da jemand etwas mit link evtl? wäre super, danke!
So habe mal in beiden Büchern gestöbert doch vermisse ich für Beuscher Muster praktische Anwendungsfälle, kennt da jemand etwas mit link evtl? wäre super, danke!
Entwurfsmuster von Kopf bis Fuss ganze hinten 2 seiten
In beiden Büchern steht nichts von konkreten Anwendungen und es gibts keinen Übungscode der einen praktischen Fall abdeckt, das finde ich sehr schlecht maki!
Da die Klasse Kreis, Dreieck und Quadrat keine abstrakte Oberklasse haben z.B. Figur gibts hier auch keine Ableitung, denn auf wikipedia gibts auch ein Klassendiagramm mit einer Implementierung von einem Element doch dieses Element halte ich für überflüssig bzw mir reichen die konkreten Elemente wie class Kreis oder class Dreieck etc..
worin siehst du den vorteil der abstrakten Oberklasse Figur ?
In beiden Büchern steht nichts von konkreten Anwendungen und es gibts keinen Übungscode der einen praktischen Fall abdeckt, das finde ich sehr schlecht maki!
Übungscode ist da, aber eben in C++.
"Echte" Muster sind Sprachunabhängig, das andere sind Idiome.
Desweegen sind "echte" Muster auch immer etwas abstrakt, konkrete Implementierungen gibt es viele, die Frage ist ob man diese Muster auch erkennt.
Naja, ich hoffe du kannst trotzdem moch etwas Gefallen an "Entwurfsmuster anwenden" finden.
Nun zu deinen Diagrammen.
Warum sollte Kreis, Quadrat(sollte das nicht eher Rechteck sein?) und Dreieck nicht ein gemeinsames Interface (zB "Visitable" ) implementieren, welches die accept Methode definiert?
Es muss nicht immer eine abstrakte Oberklasse sein.
Wenn eine Klasse ein Interface implentiert, geht sie einerseits einen Vertrag ein, andereseits sieht (!) man gleich (sowohl im Diagramm und als auch im Code), dass es da eine Beziehung gibt, zB sind leere Interfaces sind auch nicht unüblich, nennt sich "Marker".
Ein Quadrat ist auch nix anderes als ein Rechteck, zwar ein spezielles, aber meist bauchen wir nicht zu Unterscheiden, oder fällt dir ein Beispiel ein wo es Sinn ergibt?
Google hat noch mehr Beispiele, Visitor mit Composite ist wirklich geil, speziell wenn die visit Methode einen boolean zurückgibt um damit zu zeigen ob die Child Elemente auch besucht werden sollen oder es reicht, wie gesagt aber nur im Zusammenhang mit Composite.