Wzorce projektowe przykłady
Wzorzec projektowy – w inżynierii oprogramowania, 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ą.
Poniższy spis stanowi listę najczęsciej używanych wzorców projektowych. Przykłady użycia oraz przypadki przestawione są za pomocą prostej specyfikacji, popartej implementacją w danym języku, zakończoną podsumowaniem i wnioskami.
Jeżeli chciałbyś pomóc w opisywaniu znanych wzorców, pisaniu implementacji w wybranym języku programowania, masz zastrzeżenia odnośnie jakości treści lub po prostu chciałbyś z kimś porozmawiać napisz!
Strategia
Typ: CzynnościowyWzorzec strategia bywa użyteczny, gdy klasa może zachowywać się różnie w zależności od potrzeb. Gdy wykonanie metody wymaga użycia różnych algorytmów, możemy zapisać je w postaci klas i używać dokładnie jednego z nich w danym czasie.
Dekorator
Typ: StrukturalnyWzorzec dekorator stosowany jest tam, gdzie dziedziczenie nie jest optymalnym sposobem rozszerzania funkcjonalności klasy. Polega na dołączeniu nowych atrybutów poprzez “opakowanie” obiektu bazowego obiektem zwanym dekoratorem.
Fasada
Typ: StrukturalnyFasada ma na celu ujednolicenie i uproszczenie wielu, a czasami tylko jednego interfejsu. Prosto mówiąc, fasada agreguje elementy systemu tworzące większą całość udostępniając uproszczony interfejs pozwalający na skorzystanie z tej całości bez konieczności dokładnego poznawania każdego pojedynczego elementu.
Virtual proxy
Typ: StrukturalnyWzorzec stworzony w celu kontrolowania tworzenia lub dostępu do kosztownych obiektów. Oryginalny obiekt zastępowany jest przez proxy, które dziedziczy z oryginału dzięki czemu dostarcza identyczne API i może być użyty zamiast oryginału.
Repository
Repozytorium stanowi separację pomiędzy domeną a warstwą persystencji. Repozytorium dostarcza interfejs kolekcji w celu dostępu do danych przechowywanych w bazie danych, systemie plików czy zewnętrznej usłudze. Dane zwracane są w postaci obiektów.
Null Object
Typ: CzynnościowyWzorzec polega na utworzeniu klasy implementującej konkretny interfejs, jednak nie posiadającej żadnego zachowania. Wszystkie metody wymagane przez interfejs zwracają pusty wynik lub niezmodyfikowane argumenty i nie wykonują żadnych operacji.
Factory Method
Typ: KreacyjnyWzorzec projektowy, którego celem jest dostarczenie interfejsu dla klas odpowiedzialnych za tworzenie konkretnego typu obiektów.