Wzorce konstrukcyjne / kreacyjne
Fabryka abstrakcyjna
Dostarcza interfejs do tworzenia rodzin powiązanych obiektów lub zależnych od sievie obiektów bez specyfikacji konkretnych klas.
Budowniczy
Oddziela konstrukcje złożonej klasy od jej reprezentaji, pozwalając tym samym poprzez ten sam proces tworzenia, utworzyć różne warianty reprezentacji klas.
Metoda wytwórcza
Definiuje interfejs dla tworzenia pojedynczego obiektu, ale umożliwia klasą pochodnym na tworzenie egzemplarzy.
Leniwa inicjalizacja
Wzorzec opóźniający tworzenie obiektu, lub przeprowadzania kosztownych operacji do momentu wystąpienia potrzeby ich pierwszego użycia. Ten wzorzec według Bandy czworga został przypisany do wzorca proxy.
Multiton
Podobny do singletona ale zwiera określoną ilość instancji.
Pula obiektów
Pula obiektów to zbiór zainicjowanych obiektów, które są trzymane w gotowości do użycia (zamiast je alokować lub dealokować na żądanie). Klient puli obiektów żąda obiektu z tej puli i wykonuje na tym obiekcie jakieś operacje. Po skończeniu, zamiast niszczyć obiekt – zwraca do puli. Jest to szczególny typ obiektu fabrykującego.
Prototyp
Zapewnia specyfikację obiektu wzorcowego który ma być szybko tworzony poprzez kopiowanie.
Inicjowanie przy pozyskaniu zasobu -Resource acquisition is initialization
Zapewnia że obiekt jest poprawnie przyjęty i zwolniony podczas gdy nie ma już do niego odwołań (referencji). Technika związana z inteligentnymi wskaźnikami.
Singleton
Zapewnia że klasa ma tylko jedną instancję i zapewnia dostęp do niej.
Wzorce strukturalne
Adapter / Wrapper / Translator
Dostosowuje interfejs klasy na inny, który spodziewany jest dla klienta. Adapter umożliwia współpracować klasą, które nie mogły ze sobą współpracować ze względu na różnice w interfejsie.
Most
Pozwala oddzielić abstrakcję obiektu od jego implementacji.
Kompozyt
Tworzy obiekty w strukturę drzewiastą po to aby był reprezentowany jako część hierarhi. Celem jest składanie obiektów w taki sposób, aby klient widział wiele z nich jako pojedynczy obiekt..
Dekorator
Dołącza dodatkowe zadania do obiektu w sposób dynamiczny z zachowaniem jego interfejsu. Dekorator dostarcza elastyczną alternatywę do podklas aby rozszerzyć ich funkcjonalności.
Fasada
Wprowadza zunifikowany interfejs, po to aby w taki sam sposób skomunikować się z bibliotekami, lub innymi klasami. Fasada ma za zadanie skonstruować interfejs wysokiego poziomu w celu łatwiejszego zarządzania systemem.
Pyłek
Wykorzystuje współdzielenie małych takich samych obiektów w sposób efektywny dla całości.
Moduł
Grupa kilku powiązanych elementów takich jak klasy, singletony metody używane globalnie w jednej pojęciowej jednostce.
Pełnomocnik – Proxy
Dostarcza surogatki lub zastępstwo dla innego obiektu po to aby zapewnić kontrolę dostępu lub przyspieszyć działanie wczytywania programu np. poprzez przechowywanie wartości wysokości i szerokości a następnie utworzenie obrazka gdy zajdzie potrzeba. Pochodną tego wzorca są inteligentne wskaźniki.
Wzorce czynnościowe
Obserwator / Tablica / Wydawca – Czytelnik / subskrybent
Obserwator umożliwia powiadamianie wiele zainteresowanych obiektów o zmianie która nastąpiła. Przykładem może być wydanie gazety i powiadomienie różnych obiektów drukarni. Konieczność określenia zależności typu jeden do wielu między obiektami – gdy obiektu zmienia stan, wszystkie obiekty zależne są automatycznie powiadamiane i aktualizowane.
Łańcuch zobowiązań
Tworzy łańcuch odbierających obiektów i przekazuje wzdłuż niego żądanie, aż jakiś obiekt je obsłuży. Umożliwia kontakt nadającemu żądanie więcej niż z jednym obiektem i przekazania im obsłużenie tego żądania.
Polecenie
Hermetyzuje zapytanie jako obiekt, dzięki czemu mogą być one parametryzowane w zależności od rodzaju odbiorcy, jak również umieszczane w logach i kolejkach.
Interpreter
Dostarcza języka, definiując go jako reprezentacja gramatyki. Dzięki czemu możliwe jest rozwiązanie problemu za pomocą sekwencji poleceń.
Iterator
Umożliwia dostęp do elementów agregatu (np. listy, wektora, mapy) w sekwencyjny sposób poprzez dostęp do poszczególnych elementów.
Mediator
Należy ograniczyć znajomość złożonych powiązań pomiędzy obiektami, które oddziałują w złożony sposób i pozwolić na zmianę sposobu komunikowania się bez konieczności definiowania nowych podklas.
Pamiątka
Bez naruszania hermetyzacji należy zapamiętać i udostępnić stan obiektu, aby przywrócić jego stan w przyszłości. Czyli wzorzec zapisu dla klas i odczytu.
Null object
Uniemożliwia nullowe referencje tworząc domyślny obiekt.
Wizytator / Odwiedzający
Umożliwia na zdefiniowanie nowej operacji bez zmiany definicji klasy obiektów, w których ona działa..
Stan
Zmienia zachowanie obiektu poprzez zmianę jego stanu wewnętrznego. Innymi słowy – uzależnia sposób działania obiektu od stanu w jakim się aktualnie znajduje.
Strategia
Definiuje rodzinę wymiennych algorytmów i kapsułkuje je w postaci klas. Umożliwia wymienne stosowanie każdego z nich w trakcie działania aplikacji niezależnie od korzystających z nich użytkowników.
Metoda szablonowa
Należy określić szkielet algorytmu, a szczegóły algorytmu powierzyć klasom pochodnym.
Odwiedzający / Wizytator
Pozwala na zdefiniowanie nowej operacji bez zmiany definicji klasy obiektów, w których ona działa.