Wzorce projektowe

Wzorce projektowe zostały stworzone po to, aby nie wymyślać przysłowiowego koła na nowo. Znajomość wzorców projektowych i umiejętność ich stosowania pozwala na szybkie rozwiązywanie problemów. Wpis ten radzi, jakie wzorce zastosować u siebie.


Czym są wzorce projektowe?

Wzorce projektowe są zestawem receptur / strategii do samodzielnej implementacji. Receptury te służą do rozwiązywania pewnych problemów związanych z programowaniem. Istnieje kilka rodzai wzorców projektowych, które skupiają się na innych aspektach czy zakresach problemów w kodzie. Dzisiaj przejdziemy sobie po typach wzorców i ich najpopularniejszych oraz najpowszechniej używanych przykładach.

Po co stosować wzorce projektowe?

Zanim jednak mięso, wypada powiedzieć czy warto w ogóle stosować wzorce projektowe. Wzorce projektowe stosujemy głównie po to, aby rozwiązywać problemy i zmniejszać skomplikowanie kodu. Wzorce, co prawda, nie są implementowane wszędzie tak samo, ale osoba znająca wzorzec będzie go w stanie z łatwością użyć w różnych technologiach. Stosując predefiniowane i dobrze znane receptury rozwiązywania problemów, pozwalamy, aby nasz kod był możliwy do zrozumienia, przy małym nakładzie czasu, przez inne osoby. 

Wzorzec projektowy vs. algorytm

Jak już wiesz, wzorzec projektowy nie jest implementowany wszędzie tak samo. Jest to bardziej wypróbowany w boju zestaw narzędziowy, który możesz użyć do stworzenia oprogramowania. W przypadku algorytmu sprawa ma się zupełnie inaczej. Algorytm jest to z kolei instrukcja operacji, krok po kroku, której wynik i przebieg są znane. 

Mówiąc bardziej życiowo, algorytm to przykładowo przepis na szarlotkę. Wiesz w co musisz się zaopatrzeć, jakich narzędzi i składników potrzebujesz oraz posiadasz gotowy plan działania, jak zamienić składniki we wcześniej znany rezultat. Narzędziem może być tutaj mikser, kitchen aid czy trzepaczka do ubijania białek, co określać może wzorzec projektowy, który rozwiąże problem sposobu ubicia samych białek.

Kreacyjne wzorce projektowe

Pierwszym, dzisiaj omawianym rodzajem wzorców, są kreacyjne wzorce projektowe. Jak sama nazwa wskazuje, służą do tworzenia innych obiektów. Pozwalają na niwelowanie rozsianego coupling-u, trzymanie w ryzach reguł tworzenia obiektów czy też lepszą kontrolę samego procesu wytwórczego. Najczęściej stosowanymi kreacyjnymi wzorcami projektowymi są:

Strukturalne wzorce projektowe

Kolejnym typem wzorców są strukturalne wzorce projektowe. Przydają się one do spójnego łączenia części logiki w strukturalną całość. Dzięki nim, możemy sprytnie budować łatwo rozwijalne struktury systemu, skupione na realizowaniu konkretnych zadań. Stosując te wzorce projektowe nie zamkniesz się na rozbudowę, poprawisz przejrzystość i testowalność swoich komponentów. Najbardziej znanymi strukturalnymi wzorcami projektowymi są:

Czynnościowe (behawioralne) wzorce projektowe

Ostatnim omawianym dziś rodzajem wzorców projektowych są te związane z interakcją pomiędzy komponentami. Mowa tutaj o wzorcach czynnościowych, często zwanych także behawioralnymi wzorcami projektowymi. Służą one głównie do podziału odpowiedzialności podczas realizowania pewnych zadań, a także do kontroli procesów logicznych. To w nich podejmowane są decyzję o tym, w jaki sposób zrealizować logikę. Wyróżnić możemy m.in.:

Podsumowanie




Polecane wpisy:

DRY: Don't Repeat Yourself

Zasada DRY, to po przełożeniu na język polski: nie powtarzaj się. Brzmi bardzo banalnie, jednak dosyć często okazuje się, że mamy problem z jej stosowaniem w kodzie. Dziś dowiesz się, jak nie łamać tej reguły, a co za tym idzie nie powtarzać się.

Sprawdź ten wpis

YAGNI: You aren't gonna need it

YAGNI to kwintesencja zasad clean code. Dotyczy ona bezużyteczności kodu, a dokładniej, konieczności usuwania tych fragmentów, które nie są potrzebne. W myśl "You aren't gonna need it" nie powinniśmy tworzyć niczego więcej, niż to, co jest potrzebne.

Sprawdź ten wpis

KISS: keep it simple, stupid!

Zasada KISS: "Keep it simple, stupid", może zostać dosłownie przetłumaczona na: "rób to prosto, głupku". Mówi ona o tym, abyśmy tworzyli kod w jak najprostszy i najbardziej czytelny sposób. Już dziś sprawdź, czego się wystrzegać, aby spełniać KISS.

Sprawdź ten wpis

Wzorzec singleton

Kolejny kreacyjny wzorzec projektowy omawiany na łamach tego bloga: singleton. Wzorzec dookoła którego narosło wiele mitów i legend. Dziś o tym dlaczego singleton jest antywzorcem, jakie problemy powoduje oraz kiedy warto po niego sięgnąć.

Sprawdź ten wpis

Wzorzec stan (state)

Dziś prezentuję kolejny wzorzec projektowy, który pozwala uniknąć drabinek if-else if. Mowa tutaj o wzorcu state, który idealnie nada się, jeśli posiadasz różne stany w swoim systemie oraz chcesz mieć możliwość płynnego przechodzenia pomiędzy nimi.

Sprawdź ten wpis

Autor wpisu:

Gabriel Ślawski

Fanatyk czystego i prostego kodu. Zwolennik podejść DDD oraz Modular Monolith. Na codzień pracuje jako programista i architekt. Po godzinach spełnia się w projektach open source, udziela się na blogach oraz czyta książki o kosmosie i astrofizyce.