Wzorce projektowe jak to z nimi jest

Wzorce projektowe jak to z nimi jest

Wzorce projektowe w programowaniu istnieją długi czas. W tym roku mija 25 lat od wydania klasycznej pozycji na ich temat. Przez ten czas były często stosowane. Czasem poprawnie, czasem nie do końca dobrze a w niektórych przypadkach mogły być nadużywane.  Od początku budziły kontrowersje. Były traktowane jako obejścia dla braków funkcjonalności w c++. W niektórych językach można niektóre wzorce zaimplementować lepiej, prościej lub całkowicie z nich zrezygnować.

Wzorce projektowe kiedyś i dziś

Odnoszę wrażenie, że dawniej wzorce projektowe były częściej stosowane niż obecnie. Po pierwsze aplikacje były dużymi monolitami i pewne patterny się powtarzały. Ponadto dziś duży nacisk kładziemy na czytelność i jakość kodu. Niestety każdy wzorzec projektowy wprowadza do systemu pewną złożoność. Ale czy to znaczy, że nie należy korzystać ze wzorców projektowych?

Wzorce projektowe jak lego
Wzorce projektowe jak lego

Ewolucja

Skoro java wprowadza nowe mechanizmy i wciąż się rozwija, to czy wzorce projektowe nie powinny ewaluować? Jeśli podobne taski implementuje się inaczej, to również wzorce można zapisać inaczej niż w klasycznych diagramach. Java, biblioteki i frameworki same korzystają z wzorców i pozwalają łatwo je wykorzystać. Przecież enum jest singletonem. Aby stworzyć buildera używam lomboka. Zamiast używać Null Object mogę zastosować optionala. Czy spring-data nie jest adapterem dla operacji bazodanowych a kontrolery restowe to nie fasada dla naszej aplikacji? Nawet programowanie reaktywne opiera się na obserwatorze.

Stosować czy pisać

Patrząc na powyższe przykłady wzorce projektowe są wciąż często używane ale niekoniecznie sami je piszemy. Moim zdaniem warto je znać. Zamiast coś opisywać wieloma słowami, możesz użyć nazwy wzorca. Również, dzięki ich znajomości może być Ci łatwiej zrozumieć jak działają niektóre biblioteki i elementy języka. Ponadto w kodzie możesz wyłapać pewne fragmenty, które później możesz zrefaktoryzować do wzorców. Bo przecież z wzorcami projektowymi jest jak z lego, masz jeden to wiele nie zrobisz. Ale gdy masz już ich wiele wtedy możesz je łączyć i wykorzystywać razem.