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

  • Wzorce projektowe to narzędzia do tworzenia wysokiej jakości oprogramowania.
  • Wyróżniamy trzy główne rodzaje wzorców projektowych: kreacyjne, strukturalne i czynnościowe.
  • Dzięki ich stosowaniu nasz kod staje czystszy, łatwiej utrzymywalny i zrozumiały dla nowych osób.
Autor wpisu

blog@orbisbit.com

Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Sprawdź również
  • Wzorzec strategia (strategy pattern)

    Jeżeli masz dość if-ologii w swoim kodzie, to konieczne sprawdź czym jest czynnościowy wzorzec projektowy strategia. Pozwala on mądrze obsługiwać różne scenariusze w procesie i jednocześnie być fancy pod względem zasad SOLID.

    Zobacz wpis

  • SOLID z przykładami w TypeScript

    SOLID (Single responsibility principle, Open/closed principle, Liskov substitution principle, Interface segregation principle, Dependency inversion principle), czyli pięć zasad programowania obiektowego, które każdy powinien przestrzegać.

    Zobacz wpis

  • Prawo Demeter (The Law of Demeter)

    Omawiam dzisiaj mało znaną zasadę, której stosowanie skutkuje posiadaniem łatwo utrzymywalnego i testowalnego kodu. Mowa o prawie demeter, które w najprostszym ujęciu zakłada, że obiekty powinny operować jedynie na najbliższym im otoczeniu.

    Zobacz wpis