to zaawansowane, obiektowe rozwiązania często powtarzających się problemów z oprogramowaniem. Wzory to projekty wielokrotnego użytku i interakcje obiektów. Każdy wzór ma nazwę i staje się częścią słownictwa podczas omawiania złożonych rozwiązań projektowych.
Czym są wzorce projektowe w JavaScript?
można zdefiniować jako szablon oprogramowania lub opis rozwiązania problemu, który pojawia się w wielu przypadkach podczas projektowania aplikacji lub struktury oprogramowania.
Omówmy teraz Gang of Four (GoF)
Gang czterech
Plik 23 Gang of Four (GoF) wzory są zwykle uważane za podstawę wszystkich innych wzorów.
Gang Czterech (GoF) ze wzorców projektowych:
różnica między rzutem a rzutami java
Elementy oprogramowania obiektowego wielokrotnego użytku, seria Addison-Wesley Professional Computing, autor Erich Gamma, Richard Helm, Ralph Jhonson, i John Vlissides. These 23 wzorce GoF są ogólnie uważane za podstawę dla wszystkich innych wzorców.Są podzielone na trzy grupy: Kreatywne, strukturalne i behawioralne.
Rodzaje wzorców projektowych
Zasadniczo istnieją trzy różne typy wzorców projektowych w JavaScript. Są one następujące:
Wzorce kreacyjne
Fabryka abstrakcyjna: Tworzy to instancję z kilkoma rodzinami klas. Zapewnia to interfejs do tworzenia rodzin, które są obiektami pokrewnymi lub zależnymi, bez specyfikacji ich konkretnych klas.
Budowniczy: To oddzieliło konstrukcję obiektu od jego reprezentacji. Oddziela również konstrukcję złożonego obiektu od jego reprezentacji, dzięki czemu można stworzyć dokładnie ten sam proces budowy z różnymi reprezentacjami.
Metoda fabryczna: Tworzy to wystąpienie dla kilku klas pochodnych. Definiuje również interfejs do tworzenia obiektu, ale pozwala podklasie zdecydować, która klasa ma zostać utworzona. Ma to również metodę Factory, która umożliwia odroczenie wystąpienia klasy do podklas.
Prototyp: Jest to w pełni zainicjowana instancja, którą można skopiować lub sklonować. W szczególności rodzaje obiektów, które należy utworzyć za pomocą prototypowej instancji, tworzą nowe obiekty, kopiując ten prototyp.
Singel: To w pełni zainicjowane instancje do skopiowania lub sklonowania.Specyficznego rodzaju obiektów jest tworzenie przy użyciu prototypowej instancji i tworzenie nowych obiektów poprzez kopiowanie tego prototypu.
Wzory strukturalne
Adapter: Pasuje do interfejsów różnych klas. Konwertuje również interfejs klasy na inny interfejs, z wyjątkiem tego, który ma klienta. Adapter umożliwia także współpracę klas, które nie mogłyby być spowodowane niezgodnością interfejsów.
Most: Oddziela interfejs obiektu od jego implementacji. Oddzielenie abstraktu od jego implementacji, tak aby oba mogły się zmieniać niezależnie.
Złożony: Struktura drzewiasta składa się z obiektów prostych i złożonych, złożonych z obiektów w struktury drzewiaste reprezentujące hierarchie części całości. Kompozyt pozwala klientom jednolicie traktować poszczególne obiekty i kompozycje obiektów.
Dekorator: Dynamicznie dodaje obowiązki do obiektów. Dynamicznie przypisuje dodatkowe obowiązki do obiektu. Dekoratory zapewniają również elastyczną alternatywę dla podklas w celu rozszerzenia funkcjonalności.
Fasada: Pojedyncza klasa, która reprezentuje cały podsystem i zapewnia ujednolicony interfejs dla zestawu interfejsów w systemie. Fasada definiuje interfejs wyższego poziomu, dzięki czemu podsystem jest łatwiejszy w użyciu.
Waga musza: Instancja drobnoziarnista używana do wydajnego udostępniania w celu wydajnej obsługi dużej liczby drobnoziarnistych obiektów. Flyweight to obiekt współdzielony, który może być używany w wielu kontekstach jednocześnie.Flyweight działa również jako niezależny obiekt w każdym kontekście - jest nie do odróżnienia od wystąpienia obiektów, które nie są udostępniane.
Pełnomocnik: Jest to obiekt reprezentujący inny przedmiot. Zapewnia obiekt zastępczy lub zastępczy do kontrolowania dostępu do niego.
Wzorce behawioralne:
Łańcuch odpowiedzialności: Jest to sposób przekazywania żądania między łańcuchem obiektów. Unika łączenia z nadawcą i wysyła żądanie do swojego odbiorcy, dając więcej niż jednemu obiektowi szansę na obsłużenie żądania. Obiekty odbierające są łączone i przekazywane żądanie w łańcuchu, dopóki obiekt go nie obsłuży.
Komenda: Hermetyzuje żądanie polecenia jako obiekt. Żądanie hermetyzowane jako obiekt, co pozwala na sparametryzowanie klientów za pomocą różnych żądań żądań, kolejki lub dziennika i obsługuje operacje, których można cofnąć.
Interpretator: Jest to sposób na włączenie elementów językowych do programu. Mając dany język, zdefiniuj reprezentację dla jego gramatyki wraz z tłumaczem, który używa reprezentacji do interpretowania zdań w języku.
Iterator: Sekwencyjny dostęp do elementów kolekcji umożliwia sekwencyjny dostęp do elementów obiektu zagregowanego bez ujawniania jego podstawowej reprezentacji.
Mediator: Definiuje upraszcza komunikację między klasami. Zdefiniuj obiekt, który hermetyzuje sposób interakcji zestawu obiektów. Mediator promuje luźne powiązania, uniemożliwiając obiektom bezpośrednie odwoływanie się do siebie, i pozwala niezależnie zmieniać ich interakcje.
Memento: Przechwytuje i przywraca stan wewnętrzny obiektu. Nie narusza hermetyzacji, przechwytywania i eksternalizacji stanu wewnętrznego obiektu, tak aby obiekt można było później przywrócić do tego stanu.
Obserwator: Jest to sposób powiadamiania o zmianie wielu klas. Definiuje zależność jeden do wielu między obiektami, tak że gdy jeden obiekt zmienia stan, wszystkie jego zależności są automatycznie powiadamiane i aktualizowane.
Stan: Zmienia zachowanie obiektu, gdy zmienia się jego stan. Umożliwia obiektowi zmianę zachowania, gdy zmienia się stan wewnętrzny. Obiekt będzie wyglądał, jakby zmienił swoją klasę.
Strategia: Hermetyzuje algorytm w klasie i definiuje algorytm rodziny, hermetyzuje każdy z nich, a następnie czyni go wymiennym. Strategia pozwala różnym algorytmom niezależnie od klientów, którzy go używają.
Szablon: Odłóż dokładne kroki algorytmu do podklasy. Definiuje szkielet algorytmu w operacji, odraczając niektóre ważne kroki do podklas. Metoda szablonu pozwala nam stworzyć podklasę przedefiniowującą pewne kroki algorytmu bez zmiany struktury algorytmu.
Gość: Definiuje nową operację dla klasy bez zmian. Reprezentuj operację, która ma zostać wykonana na elementach struktury obiektu. Visitor pozwala zdefiniować nową operację bez zmiany klas elementów, na których ona działa.
W ten sposób dochodzimy do końca tego artykułu. Mam nadzieję, że zrozumiałeś wzorce projektowe w JavaScript, ich typy, znaczenie i implementację.
Teraz, gdy znasz już podstawy wzorców projektowych w JavaScript, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistami Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji Java, a także różnych struktur Java, takich jak Hibernate i Wiosna .
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy na blogu „Wzorce projektowe w JavaScript”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.