Hura! Mamy wreszcie przyjemność udostępnić wam polską wersję! Zapraszamy do przesyłania wiadomości z waszymi uwagami i informacjami o zauważonych błędach.
Wzorce projektowe w C#
Wzorce projektowe w C#

Wzorce projektowe w C#

Katalog przykładów w C#

Wzorce kreacyjne

Fabryka abstrakcyjna

Fabryka abstrakcyjna

Umożliwia tworzenie rodzin spokrewnionych ze sobą obiektów bez określania ich konkretnych klas.

Budowniczy

Budowniczy

Daje możliwość konstruowania złożonych obiektów krok po kroku. Wzorzec ten pozwala produkować różne typy oraz reprezentacje obiektu używając tego samego kodu konstrukcyjnego.

Metoda wytwórcza

Metoda wytwórcza

Udostępnia interfejs do tworzenia obiektów w klasie bazowej, ale pozwala podklasom zmieniać typ tworzonych obiektów.

Prototyp

Prototyp

Umożliwia kopiowanie istniejących obiektów bez tworzenia zależności pomiędzy twoim kodem, a ich klasami.

Singleton

Singleton

Pozwala zachować pewność, że istnieje wyłącznie jedna instancja danej klasy oraz istnieje dostęp do niej w przestrzeni globalnej.

Wzorce strukturalne

Adapter

Adapter

Pozwala na współdziałanie obiektów o niekompatybilnych interfejsach.

Most

Most

Pozwala podzielić dużą klasę lub blisko spokrewnione ze sobą klasy na dwie hierarchie: abstrakcję oraz implementację, nad którymi można pracować niezależnie od siebie.

Kompozyt

Kompozyt

Pozwala komponować obiekty w struktury drzewiaste, a potem traktować je tak, jakby były one osobnymi obiektami.

Dekorator

Dekorator

Pozwala nadać dodatkowe obowiązki obiektom poprzez umieszczenie tych obiektów w specjalnych obiektach opakowujących, które zawierają odpowiednie zachowania.

Fasada

Fasada

Wyposaża bibliotekę, framework lub inny złożony zestaw klas w uproszczony interfejs.

Pyłek

Pyłek

Pozwala zmieścić większą liczbę obiektów w dostępnej pamięci RAM poprzez współdzielenie elementów opisujących stan obiektu. Część opisu stanu jest wspólna dla wielu obiektów, więc nie muszą one zawierać kopii wszystkich danych.

Pełnomocnik

Pełnomocnik

Pozwala tworzyć zastępcę dla innego obiektu. Pełnomocnik nadzoruje dostęp do pierwotnego obiektu, pozwalając na wykonanie jakiejś czynności przed lub po przekazaniu do niego żądania.

Wzorce behawioralne

Łańcuch zobowiązań

Łańcuch zobowiązań

Pozwala przekazywać żądania według łańcucha obiektów obsługujących. Otrzymawszy żądanie, każdy z obiektów obsługujących decyduje o zrealizowaniu żądania lub przekazaniu go do swojego następnika w łańcuchu.

Polecenie

Polecenie

Zmienia żądanie w samodzielny obiekt zawierający wszystkie informacje o tym żądaniu. Taka transformacja pozwala na parametryzowanie metod przy przy użyciu różnych żądań. Oprócz tego umożliwia opóźnianie lub kolejkowanie wykonywania żądań oraz pozwala na cofanie operacji.

Iterator

Iterator

Pozwala przechodzić sekwencyjnie po elementach zbioru bez konieczności eksponowania jego formy (lista, stos, drzewo, itp.).

Mediator

Mediator

Pozwala zredukować chaos zależności pomiędzy obiektami. Wzorzec ogranicza bezpośrednią komunikację pomiędzy obiektami i zmusza je do współpracy wyłącznie za pośrednictwem obiektu mediatora.

Pamiątka

Pamiątka

Pozwala zapisywać i przywracać wcześniejszy stan obiektu bez ujawniania szczegółów jego implementacji.

Obserwator

Obserwator

Pozwala zdefiniować mechanizm subskrypcji by powiadamiać wiele obiektów o zdarzeniach odbywających się w obserwowanym obiekcie.

Stan

Stan

Pozwala obiektowi zmienić swoje zachowanie gdy zmieni się jego wewnętrzny stan. Wygląda to tak, jakby obiekt zmienił swoją klasę.

Strategia

Strategia

Pozwala zdefiniować rodzinę algorytmów, umieścić je w osobnych klasach i uczynić obiekty tych klas wymienialnymi.

Metoda szablonowa

Metoda szablonowa

Definiuje szkielet algorytmu w klasie bazowej, ale umożliwia podklasom nadpisanie poszczególnych etapów algorytmu bez konieczności zmiany jego struktury.

Odwiedzający

Odwiedzający

Pozwala oddzielić algorytmy od obiektów na których pracują.