Es sind keine Entwurfsmuster erforderlich. In jeder Sprache.
Ich stoße auf eine Menge Code, der von Leuten geschrieben wurde, die sich mit Designmustern befasst haben und dann der Meinung sind, dass sie sie überall verwenden sollten. Das Ergebnis ist, dass der eigentliche Code unter Tonnen von Schnittstellen, Wrappern und Layern verborgen bleibt und ziemlich schwer zu lesen ist. Das ist eine falsche Herangehensweise an Designmuster.
Entwurfsmuster sind vorhanden, sodass Sie ein Repertoire nützlicher Redewendungen zur Hand haben, wenn Sie auf ein Problem stoßen. Sie sollten jedoch niemals ein Muster anwenden, bevor Sie das Problem identifiziert haben. Halte es einfach Dumm sollte immer das überlegene Prinzip sein.
Es ist auch hilfreich, sich Entwurfsmuster als ein Konzept vorzustellen, um über das Problem nachzudenken, anstatt spezifischen Code zu schreiben. Und über einen Großteil des Boilerplates als Workaround für Java fehlen freie Funktionen und Standardfunktionsobjekte, die Sie in den meisten anderen Sprachen verwenden, in denen sie enthalten sind (wie Python, C #, C ++ usw.).
Ich könnte sagen, dass ich ein Besuchermuster habe, aber in jeder Sprache mit erstklassigen Funktionen wird es nur eine Funktion sein, die eine Funktion übernimmt. Anstelle der Fabrikklasse habe ich normalerweise nur eine Fabrikfunktion. Ich könnte sagen, ich habe eine Schnittstelle, aber dann sind es nur ein paar Methoden, die mit Kommentaren markiert sind, da es keine andere Implementierung gibt (in Python sind Schnittstellen natürlich immer nur Kommentare, weil sie vom Typ Ente sind). Ich spreche immer noch davon, dass der Code das Muster verwendet, weil es eine nützliche Möglichkeit ist, darüber nachzudenken, aber tippe nicht wirklich alles ein, bis ich es wirklich brauche.
Lernen Sie also alle Muster als Konzepte . Und vergessen Sie die spezifischen Implementierungen. Die Implementierung variiert und sollte in der realen Welt variieren, auch nur in Java.