Uważam, że czwórka z nich sama klasyfikuje wzorce projektowe jako
wspólne rozwiązanie często występującego problemu *
Tak, wzorce są istotne, gdy występuje ten sam typ problemu. I to prowadzi nas do problemu z terminem „wzorzec projektowy”. Wzór to coś, co można rozpoznać wielokrotnie. Tak więc w rzeczywistości nie ma wzoru wzorów, jest wzór problemów.
Niektóre języki programowania mogą mieć natywne rozwiązania niektórych z tych problemów. W samej książce „Wzorce projektowe” wspomina się, że wzorzec gościa ma niewielką wartość, jeśli używasz CLOS, ponieważ wiele wysyłek jest natywnie obsługiwanych przez CLOS, właśnie ten problem, który próbuje rozwiązać wzór gościa.
Ponadto .NET Framework ma wbudowany mechanizm zdarzeń do publikowania zdarzeń wielu słuchaczom, dzięki czemu wzorzec Observer jest mniej istotny w tym kontekście.
Zmiana z aplikacji komputerowych na aplikacje internetowe ** zmienia również rodzaj problemów programistycznych, które musimy rozwiązać. Wiele wzorców z książki „Wzory projektowe” dotyczy aplikacji komputerowych, ale nie tyle aplikacji internetowych. Oczywiście w przypadku aplikacji jednostronicowych wzorce te mogą być znowu odpowiednie po stronie klienta.
Ale wzorce projektowe i książki takie jak „Wzory projektowe” lub „Wzory architektury aplikacji korporacyjnych” mają ogromną wartość, gdy jesteś początkującym programistą i po raz pierwszy napotykasz nowy rodzaj problemu; ponieważ po raz pierwszy zostałem poproszony o wdrożenie funkcji Cofnij. Gdyby nie książka „Wzory projektowe”, moja implementacja byłaby prawdopodobnie czymś w rodzaju przechowywania migawki danych po każdej operacji zmieniającej stan *** - podejście bardzo podatne na błędy i okropnie nieefektywne.
Tak więc, niektóre wzorce stają się z czasem mniej istotne, a kiedy stajesz się doświadczonym programistą, mniej o nich myślisz. Ale dla początkującego są one cenne, o ile pamiętasz, że są sposobem na rozwiązanie problemu - a nie dążeniem do korzystania z jak największej liczby.
* cytat może nie być w 100% dokładny, ponieważ pochodzi z pamięci
** z mojego doświadczenia wynika, że bardzo często przedsiębiorstwa wybierają mechanizmy dostarczania stron internetowych do wewnętrznych aplikacji biznesowych.
*** po nauczeniu się programowania funkcjonalnego i struktur danych funkcjonalnych, to może być sposób, w jaki mógłbym to dziś rozwiązać.