Wzorce Projektowe

Wzorzec projektowy (ang. design pattern) – uniwersalne, sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych problemów projektowych. Pokazuje powiązania i zależności pomiędzy klasami oraz obiektami i ułatwia tworzenie, modyfikację oraz pielęgnację kodu źródłowego. Jest opisem rozwiązania, a nie jego implementacją. Wzorce projektowe stosowane są w projektach wykorzystujących programowanie obiektowe.

Mamy dostępny 1 płatny kurs

Tytuł Krótki opis Kod rabatowy Akcja
Wzorce Projektowe (Design Patterns) - stworzony przez Paweł Ćwik, Dawid Nowak Wzorce Projektowe (Design Patterns) są tematem istniejącym w świecie programowania od wielu, wielu lat i zagościły w nim już na dobre. Pytanie o wybrany wzorzec jest niemal pewniakiem podczas rozmowy kwalifikacyjnej na startowe pozycje w branży. W tym kursie poznasz popularne wzorce służące do ułatwienia tworzenia skomplikowanych obiektów, dynamicznej zmiany ich zachowań czy takie, które pozwalają na komunikację pomiędzy dwoma różnymi interfejsami. Są to uniwersalne rozwiązania służące do rozwiązywania problemów, z którymi programistom często przychodzi się zmagać w codziennej pracy. Devfoundry.pl Zobacz więcej

Mamy dostępne 4 darmowe kursy

Jarosław Czub / Jaro
Magdalena Limanówka / Lime
Kamil Głusiński / Webkonstruktor
Weronika Tobor / programmer-girl

Jarosław Czub / Jaro

Jarosław Czub / Jaro

Krótki opis
Z poradnika Budowlańca – wzorce projektowe Dzisiaj kilka słów na temat wzorców. Póki co krótko. Poszczególne wzorce będą rozszerzane o przykłady kodu. Chciałbym nadmienić, że jest to temat wielokrotnie już opracowywany, rozwijany od kilkudziesięciu lat, ale prezentuję tu moje własne spojrzenie na kwestię wzorców celem przypomnienia. Z doświadczenia wiemy, że pewne rzeczy warto sobie powtórzyć, bo często się przydają…
Wzorzec – Command (Polecenie) Command (Polecenie) – należy do czynnościowego wzorca projektowego Wzorzec który ostatnio mi się spodobał. Kiedyś w pisanym edytorze rozkazy do wykonania były kolejkowane jako ENUM’y w kolejce rozkazów do wykonania. Ten wzorzec zapewnia jednak większą elastyczność poprzez: rozdzielenie zależności pomiędzy nadawcą i odbiorcą komunikatu możliwość dodanie operacji undo oraz zapamiętania stanu obiektów przed wykonaniem polecenia […]
Wzorzec – Composite (Kompozyt) Composite (Kompozyt) – strukturalny wzorzec projektowy, którego zadaniem jest łączenie obiektów w strukturę tak, że reprezentują hierarchię części-całość, unifikując dostęp do kolekcji jak i pojedynczego obiektu. Umożliwia to klientom jednolite traktowanie pojedynczych obiektów i również ich kompozycji. Tego wzorca używałem w klasach np. w tym projekcie, gdzie poszczególne efekty mogły być uzyskane tylko przy pomocy […]
Wzorzec – Singleton Singleton – konstrukcyjny wzorzec projektowy którego zadaniem jest ograniczenie ilości instancji obiektu w systemie oraz zapewnienie globalnego dostępu do stworzonego obiektu. Wydawało by się, że prosto jest tylko stworzyć obiekt, ale ten wzorzec ma swoje zalety: Tworzenie instancji klasy jest niewidoczne dla użytkownika Lazy loading – obiekt jest tworzony kiedy następuje jego próba pierwszego użycia […]
Wzorzec – Iterator Dzisiaj trochę na temat wzorca Iterator. Służy on do zapewnienia zunifikowanego dostępu do elementów obiektu. Najważniejsze o co w tym wzorcu chodzi to „bez ujawniania jego implementacji wewnętrznej”. Często w programowaniu ten sam rezultat możemy uzyskać przy pomocy paru technik, te same dane możemy przechowywać w pamięci w różny sposób. Przy użyciu tablic, list lub […]
Wzorzec – Observer (Obserwator) Z życia wzięte: … napięte terminy, ciasny czas, każdy co chwilę czegoś chce. Takie coś przeszkadza i co chwilę odrywa mnie od projektu, w końcu się lekko wkurzam i mówię „tu jest kartka, proszę zostawcie swoje telefony, jak skończę bieżący temat to zawiadomię was” … To jest przykład działania wzorca obserwatora, tak w realnym życiu. […]
Wzorzec – Mediator Z życia wzięte … „… centralny magazyn firmy, przychodzą do niego materiały, narzędzia, półfabrykaty. Jako jedyny zna adresy poszczególnych oddziałów i osoby odpowiedzialne za przepływ materiałów w danym oddziale. Jego sprawne działanie ma wpływ na bezproblemowe wytwarzanie produktów firmy. Po co taki centralny magazyn, nie lepiej żeby poszczególne działy kontaktowały się ze sobą? A jednak […]
Wzorzec – Decorator (Dekorator) Stal, każdy mniej więcej wie co to za stop – żelaza, węgla i innych pierwiastków. Niby stal to stal, ale każdy stop stali ma inne właściwości i inaczej się zachowuje w zależności od użytych domieszek. Tak samo we wzorcu dekorator, mamy klasę do którego możemy dodawać nowe właściwości lub zachowania, bez modyfikowania jej zawartości. Wszystkie […]
Wzorzec – Proxy (Pełnomocnik) Strukturalny wzorzec projektowy Proxy, jego zadaniem jest zbudowanie klasy, która zastępuje/emuluje zachowanie innego klasy/obiektu Jest to jeden z najprostszych wzorców projektowych, bardzo często niepozornie siedzący w kodzie. Zastosowanie takiej kombinacji gdzie jeden obiekt zastępuje inny obiekt jest: Kontrola dostępu do ochranianego obiektu – np. dostęp do danych po autoryzacji użytkownika Opóźnienie tworzenia kosztownego obiektu, obiekt […]
Wzorzec – Adapter (Wrapper) We wakacje wybieramy się do jakiegoś obcego kraju i niekiedy nieprzyjemna niespodzianka, w danym kraju są inne standardy wtyczek sieciowych (Wielka Brytania) oraz np. napięcia sieciowego (USA, Kanada). Wtedy okazuje się ze trzeba zabrać konwerter napięcia, albo przejściówkę która pozwoli na podłączenie wtyczki polskiej do angielskiego gniazdka obie te rzeczy pełnią rolę adaptera. Tak samo […]
Wzorzec – Fasada (Facade) Fasada upraszcza oraz unifikuje dostęp do grupy klas lub jednej klasy o rozbudowanym API. Fasada tworzy nowy interfejs o wysokiej abstrakcji, który upraszcza korzystania z całego systemu. W praktyce z fasadą możemy spotkać się w sytuacji, gdy tworzymy serwis rozdzielony na frontend oparty na technologiach webowych (Java Script, HTML, CSS, itd.) i backend gdzie komunikacja […]
Magdalena Limanówka / Lime

Magdalena Limanówka / Lime

Krótki opis
Wzorce projektowe – Metoda wytwórcza Każdy, kto zetknął się z programowaniem, na pewno słyszał o czymś takim jak wzorce projektowe. Na początku drogi nie bardzo wiemy, po co one są, w czym niby mają pomóc i jak je rozumieć. W sieci jest wiele instrukcji, jak […]
Wzorce projektowe – Strategia Bardzo się cieszę, z jakim zainteresowaniem przyjęliście cykl o wzorcach. Dotarł do mnie bardzo pozytywny feedback, dziękuję. Wcześniej miałam wątpliwości czy go pisać, ponieważ w sieci jest już dużo tekstów na ten temat. Ogromnie mi miło, że mogłam przekazać Wam […]
Wzorce projektowe – Dekorator Przyszedł czas na kolejny wzorzec projektowy. Wcześniej opisywałam już Strategię i Metodę wytwórczą, czyli odpowiednio wzorzec czynnościowy i kreacyjny. Teraz przyszedł czas na pierwszy przykład z grupy wzorców strukturalnych. Będzie nim Dekorator. Na czym polega dekorator? Dekorator jak już wspomniałam, należy […]
Kamil Głusiński / Webkonstruktor

Kamil Głusiński / Webkonstruktor

Krótki opis
[Wzorce projektowe] Wzorzec projektowy Dekorator Cześć. Dziś post bardziej techniczny. No i pierwszy z serii, nieregularnej zresztą. Będę opisywał wzorce projektowe oraz ich przykładowe zastosowanie[...]
Weronika Tobor / programmer-girl

Weronika Tobor / programmer-girl

Krótki opis
Wzorzec adapter – cz. 1 adapter klasy Cel W książkach można przeczytać, że głównym celem tego wzorca jest zaadaptowanie (przystosowanie) istniejącej klasy do formy, którą oczekuje klient. Klientem w tym przypadku jest dowolny obiekt, który wywołuje nasz kod i wymaga odpowiedniego interfejsu. Teoria może być łatwa, ale trzeba jeszcze umieć zastosować ją w praktyce. Stwórzmy więc przykładową klasę BoardGameService. Jak widać, wykorzystujemy…
Wzorzec adapter – cz. 2 adapter obiektu We wcześniejszym wpisie opisałam działanie wzorca adapter klasy. Dla przypomnienia: jest on wykorzystywany na przykład wtedy, gdy klient zdefiniuje swoje wymagania na podstawie jakiegoś interfejsu. Wystarczy, że dostarczy klasę, która implementuje ten interfejs i dziedziczy po istniejącej klasie. I tyle. Co jednak, gdy klient nie przygotuje takiego interfejsu? Tylko dostarczy jakąś klasę spełniającą wymagania? Wtedy należy…