Wzorce projektowe
Wzory projektowe
Singleton - Upewnij się, że tworzona jest tylko jedna instancja klasy i Zapewnij globalny punkt dostępu do obiektu.
Factory (Uproszczona wersja metody Factory) - Tworzy obiekty bez ujawniania logiki tworzenia instancji klientowi i odnosi się do nowo utworzonego obiektu za pośrednictwem wspólnego interfejsu.
Metoda fabryczna - definiuje interfejs do tworzenia obiektów, ale pozwala podklasom decydować, którą klasę utworzyć i odwołuje się do nowo utworzonego obiektu za pośrednictwem wspólnego interfejsu.
Fabryka abstrakcyjna - oferuje interfejs do tworzenia rodziny powiązanych obiektów, bez wyraźnego określania ich klas.
Konstruktor - definiuje instancję do tworzenia obiektu, ale pozwala podklasom decydować, która klasa ma zostać utworzona, i umożliwia lepszą kontrolę nad procesem budowy.
Prototyp - Określ rodzaje obiektów do utworzenia przy użyciu instancji prototypowej i utwórz nowe obiekty, kopiując ten prototyp.
Zachowawcze wzorce projektowe
Łańcuch odpowiedzialności - unika dołączania nadawcy żądania do odbiorcy, dając w ten sposób innym przedmiotom możliwość obsługi żądania. - Obiekty stają się częścią łańcucha, a żądanie jest wysyłane z jednego obiektu do drugiego w całym łańcuchu, dopóki jeden z obiektów nie obsłuży go.
Polecenie - enkapsuluje żądanie w obiekcie, umożliwia parametryzację klientów z różnymi żądaniami i umożliwia zapisywanie żądań w kolejce.
Tłumacz - biorąc pod uwagę język, zdefiniuj reprezentację dla jego gramatyki wraz z tłumaczem, który używa reprezentacji do interpretacji zdań w języku / Mapuj domenę na język, język na gramatykę i gramatykę na hierarchiczny obiektowy projekt
Iterator - umożliwia sekwencyjny dostęp do elementów obiektu agregującego bez ujawniania jego podstawowej reprezentacji.
Mediator - Zdefiniuj obiekt, który określa sposób interakcji zestawu obiektów. Mediator promuje luźne sprzężenie, uniemożliwiając obiektom bezpośrednie odwoływanie się do siebie i pozwala niezależnie zmieniać ich interakcje.
Obserwator - Zdefiniuj zależność jeden-do-wielu między obiektami, aby w przypadku zmiany stanu jednego obiektu wszystkie jego zależności były powiadamiane i aktualizowane automatycznie.
Strategia - Zdefiniuj rodzinę algorytmów, obuduj każdy z nich i uczyń je wymiennymi. Strategia pozwala algorytmowi zmieniać się niezależnie od klientów, którzy go używają.
Metoda szablonów - Zdefiniuj szkielet algorytmu w operacji, odraczając niektóre kroki do podklas / Metoda szablonów pozwala podklasom na nowo zdefiniować pewne kroki algorytmu, nie pozwalając im na zmianę struktury algorytmu.
Gość - reprezentuje operację, która ma zostać wykonana na elementach struktury obiektu / Gość umożliwia zdefiniowanie nowej operacji bez zmiany klas elementów, na których ona działa.
Obiekt zerowy - Podaj obiekt jako surogat dla braku obiektu danego typu. / Wzorzec obiektu zerowego zapewnia inteligentne zachowanie bezczynności, ukrywając szczegóły przed współpracownikami.
Wzory konstrukcyjne
Adapter - Konwertuj interfejs klasy na inny interfejs, którego oczekują klienci. / Adapter pozwala klasom współpracować ze sobą, czego inaczej nie byłoby z powodu niekompatybilnych interfejsów.
Most - Komponuj obiekty w struktury drzewne, aby reprezentowały hierarchie częściowe. / Composite umożliwia klientom jednolite traktowanie poszczególnych obiektów i kompozycji obiektów.
Złożony - Komponuj obiekty w struktury drzewne, aby reprezentowały hierarchie częściowe. / Composite umożliwia klientom jednolite traktowanie poszczególnych obiektów i kompozycji obiektów.
Dekorator - dynamicznie dodawaj dodatkowe obowiązki do obiektu.
Flyweight - użyj współużytkowania, aby obsłużyć dużą liczbę obiektów, które mają wspólną część swojego stanu wewnętrznego, gdzie inna część stanu może się różnić.
Pamiątka - przechwytuj wewnętrzny stan obiektu bez naruszania hermetyzacji, zapewniając w ten sposób sposób na przywrócenie obiektu do stanu początkowego w razie potrzeby.
Proxy - podaj „symbol zastępczy” dla obiektu, aby kontrolować odwołania do niego.