+48 511 790 336

szymon@artmetic.pl

Wzorce projektowe – zestawienie

Zestawienie wzorców projektowych w C++

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.

Tagi: , , , , ,

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.