BlackJack hat geschrieben:Ich bin da seiner Meinung, dass die meisten Programmierer neu erlernte Techniken oder Konzepte auch unbedingt irgendwo anwenden wollen.
Sicher will man das - was ist daran verkehrt? Man muss halt bei Produktiv-Code prüfen, ob der Pattern passt oder nicht. Manchmal stellt man auch erst später fest, dass das unnötig komplex gelöst ist. Dann muss man eben refactorn. Aber im Grunde ist das doch etwas ganz natürliches. Denn auch ohne Pattern lernt der Anfänger (hoffentlich) dazu und wird seinen "alten" Code refactorn oder gar wegwerfen.
Zum Spielen und Experimentieren hingegen kann man doch durchaus "overengineered" Code schreiben.
Im übrigen wendet man Pattern in vielen Sprachen eh täglich an - Events in C# sind ja nichts anderes als der Obserer-Pattern. Der Template-Pattern bei Sortierfunktionalität, der Decorator-Pattern bei Java-Streams, ... Wo liegt also die Grenze? Und kann man diese Techniken nicht besser nutzen, wenn man das Konzept dahinter verstanden hat?
Welche Strategie würdest Du denn einem Anfänger empfehlen? Wann "darf" der Anfänger denn nun Design-Pattern lernen?
Ist denn auf einmal alles gut, wenn in dem Buch auf Seite 10 das steht, was erst spät im Buch auftaucht?
Davon abgesehen möchte ich mal Lernende erleben, denen sofort zu Beginn des Buches an den Kopf geworfen wird, dass sie das im folgenden zu lernende bloß nicht sofort anwenden sollen - ich wäre ziemlich wütend auf den Autor oder den Lehrenden
Last but not least: Im Buch werden neben den Pattern ja eben *auch* grundlegende OOP-Prinzipien erklärt und veranschaulicht. Und diese anzuwenden und frühzeitig zu üben ist sicherlich sinnvoll.