Nie są wymagane żadne wzory projektowe. W dowolnym języku
Często napotykam dużo kodu napisanego przez ludzi, którzy czytają wzorce projektowe, a potem sądzą, że powinni z nich korzystać wszędzie. W rezultacie rzeczywisty kod zostaje zakopany pod mnóstwem interfejsów, opakowań i warstw i jest dość trudny do odczytania. To złe podejście do wzorców projektowych.
Wzory projektowe istnieją, dzięki czemu masz repertuar przydatnych idiomów pod ręką, gdy natrafisz na problem. Ale nigdy nie powinieneś stosować żadnego wzoru przed zidentyfikowaniem problemu. Niech to będzie proste Głupota zawsze powinna być nadrzędną zasadą rządzącą.
Pomaga również myśleć o wzorcach projektowych jako o koncepcji do myślenia o problemie, a nie o konkretnym kodzie wzorcowym do napisania. I w dużej mierze z podstawową metodą obejścia Javy bez wolnych funkcji i standardowych obiektów funkcji, których używasz w większości innych języków, które je mają (takich jak Python, C #, C ++ itp.).
Mogę powiedzieć, że mam wzorzec odwiedzających, ale w każdym języku z funkcjami pierwszej klasy będzie to funkcja pełniąca funkcję. Zamiast klasy fabrycznej zwykle mam tylko funkcję fabryczną. Mógłbym powiedzieć, że mam interfejs, ale to tylko kilka metod oznaczonych komentarzami, ponieważ nie byłoby żadnej innej implementacji (oczywiście w Pythonie interfejs zawsze jest tylko komentarzem, ponieważ jest napisany kaczką). Nadal mówię o kodzie jako o użyciu wzorca, ponieważ jest to przydatny sposób, aby o nim pomyśleć, ale tak naprawdę nie wpisuj wszystkich rzeczy, dopóki naprawdę go nie potrzebuję.
Naucz się wszystkich wzorców jako pojęć . I zapomnij o konkretnych implementacjach. Implementacja różni się i powinna się różnić w świecie rzeczywistym, nawet w Javie.