Press "Enter" to skip to content

Wzorce projektowe

Od jakiegoś czasu myślałem o stworzeniu serii tutoriali na temat wzorców projektowych. W sieci ciężko znaleźć dobre materiały na ten temat (nie mówię, że ich nie ma w ogóle 🙂 ), więc pomyślałem, że może mi się uda stworzyć jakiś ciekawy i w miarę dobrze wyjaśniający materiał na ten temat 🙂
W planach mam wrzucać taki tutorial raz w tygodniu, chociaż może być ciężko z przygotowaniem dobrego materiału oraz przykładów. Jednak mimo wszystko będę się starał tworzyć takie materiały regularnie.

Ogólnie o wzorcach

Co to są wzorce projektowe i skąd się wzięły?
Wzorce projektowe jest to nic innego, jak zbiór rozwiązań popularnych problemów programistycznych, które znalazły zastosowanie w kilku projektach przez większą rzeszę programistów, projektantów. Nie każde rozwiązanie popularnego problemu można traktować jako wzorzec projektowy. Aby nasz pomysł trafił do ogólnego zbioru wzorców, musi on być zastosowany przez innych programistów w minimum kilku projektach (gdzieś czytałem o tym „zjawisku” jednak nie mogę sobie teraz przypomnieć gdzie 🙁 ).
Po co powstały wzorce projektowe?
Wzorce projektowe powstały z myślą, aby pomagać programistom w rozwiązywaniu swoich problemów za pomocą ogólnych schematów rozwiązywania pewnych, typowych zadań. Dzięki zastosowaniu wzorców projektowych, projekty aplikacji staną się łatwiejsze do rozszerzania poprzez nowe funkcjonalności, bardziej odporne na błędy, czy też łatwiejsze w zmianie implementacji.

Podział wzorców projektowych

Wzorce projektowe klasyfikuje się na 3 kategorie:

  • Wzorce konstrukcyjne – opisują w jaki sposób obiekt może zostać utworzony. Sposób ten często obejmuje izolowanie detali tworzenia obiektu, więc kod nie jest uzależniony od rodzajów obiektów, dzięki czemu nie musi być on zmieniany, kiedy dodany zostanie nowy typ obiektu
  • Wzorce strukturalne – opisują projektowanie obiektów w celu zaspokojenia konkretnych wymuszeń projektowych. Deklarują w jaki sposób obiekty są połączone z innymi obiektami by zapewnić, że zmiana w systemie nie będzie wymagała zmiany w tych połączeniach
  • Wzorce czynnościowe – opisują obiekty, które obsługują określone typy działań w programie. Pakują one prcesy, które będą wykonane, jak wykonanie żądania, przechodzenie przez sekwencję (jak iterator) lub implementowanie algorytmu. Opisują zachowanie i odpowiedzialności współpracujących ze sobą obiektów.

Hmmm…

Nie jest to może obszerny wstęp, ale myślę, że taki wystarczy. Osobiście nie lubię zbyt długiej teorii w książkach lub innych materiałach poświęconych zagadnieniom naukowym, dlatego też tutaj starałem się nie opisywać niepotrzebnej teorii. Wybrałem (według mnie) najważniejsze zagadnienia, które pozwolą (w mniejszym lub większym stopniu) zrozumieć ideę stosowania wzorców projektowych.

Dokładniejszy zbiór informacji znajdziecie w książkach:

które swoją drogą polecam 😉