Een korte handleiding voor de ontwerppatronen in JavaScript



Dit artikel zal u helpen met een gedetailleerde benadering van de ontwerppatronen in JavaScript op een vereenvoudigde manier voor een beter begrip.

zijn de geavanceerde objectgeoriënteerde oplossingen voor de veelvoorkomende softwareproblemen. Patronen zijn de herbruikbare ontwerpen en interacties van objecten. Elk patroon heeft een naam en wordt onderdeel van een vocabulaire bij het bespreken van complexe ontwerpoplossingen.

Wat zijn ontwerppatronen in JavaScript?

kan worden gedefinieerd als een software sjabloon of een beschrijving om een ​​probleem op te lossen dat zich in meerdere gevallen voordoet tijdens het ontwerpen van een softwareapplicatie of een softwareframework.





Bouwer ontwerppatronen

Laten we het nu hebben over de Gang of Four (GoF)



Groep van vier

De 23 Gang of Four (GoF) patronen worden meestal beschouwd als de basis voor alle andere patronen.

The Gang of Four (GoF) van Design Patterns:



Elementen van herbruikbare objectgeoriënteerde software, Addison-Wesley Professional Computing Series, door Erich Gamma, Richard Helm, Ralph Jhonson, en John Vlissides. TDeze 23 GoF-patronen worden algemeen beschouwd als de basis voor alle andere patronen.Ze zijn onderverdeeld in drie groepen: Creatief, structureel en gedragsmatig.

gebruik van scannerklasse in java

Soorten ontwerppatronen

Er zijn in principe drie verschillende soorten ontwerppatronen in JavaScript. Ze zijn als volgt:

Creationele patronen

Abstracte fabriek: Dit creëert een instantie met meerdere klassenfamilies. Dit biedt een interface voor het maken van families die verwante of afhankelijke objecten zijn zonder enige specificatie van hun concrete klassen.

Bouwer: Dit scheidde objectconstructie van zijn representatie. Scheidt ook de constructie van een complex object van zijn representatie, zodat exact hetzelfde constructieproces kan worden gecreëerd met verschillende representaties.

Fabrieksmethode: Dit creëert een instantie voor verschillende afgeleide klassen. Definieert ook een interface voor het maken van een object, maar het laat de subklasse beslissen welke klasse wordt geïnstantieerd. Dit heeft ook een fabrieksmethode waarmee een klasse instantiatie kan uitstellen naar subklassen.

Voorlopig ontwerp: Het is een volledig geïnitialiseerd exemplaar dat kan worden gekopieerd of gekloond. Specifiek, het soort objecten dat moet worden gemaakt met behulp van een prototypische instantie, maak nieuwe objecten door dit prototype te kopiëren.

Singleton: Het zijn volledig geïnitialiseerde exemplaren die moeten worden gekopieerd of gekloond.Het is een specifiek soort objecten om te maken met behulp van een prototypische instantie en om nieuwe objecten te maken door dit prototype te kopiëren.

Structurele patronen

Adapter: Het komt overeen met interfaces van de verschillende klassen. Converteert ook de interface van een klasse naar een andere interface behalve die met de client. De adapter laat ook klassen samenwerken die anders niet hadden kunnen zijn vanwege de incompatibiliteitsinterfaces.

Brug: Het scheidt de interface van een object van zijn implementatie. Een abstract loskoppelen van de implementatie, zodat de twee onafhankelijk van elkaar kunnen variëren.

Composiet: Een boomstructuur bestaat uit eenvoudige en samengestelde objecten, samengestelde objecten in boomstructuren die deel-hele hiërarchieën vertegenwoordigen. Met Composite kunnen klanten individuele objecten en composities van objecten uniform behandelen.

Decorateur: Voegt de verantwoordelijkheden dynamisch toe aan objecten. Koppelt de extra verantwoordelijkheden dynamisch aan een object. Decorateurs bieden ook een flexibel alternatief voor subclassificatie om functionaliteiten uit te breiden.

Facade: Een enkele klasse die een volledig subsysteem vertegenwoordigt en een uniforme interface biedt met een set interfaces in een systeem. Façade definieert een interface op een hoger niveau waardoor het subsysteem gemakkelijker te gebruiken is.

Vlieggewicht: Een fijnmazig exemplaar dat wordt gebruikt voor efficiënt delen om grote aantallen fijnmazige objecten efficiënt te ondersteunen. Een vlieggewicht is een gedeeld object dat in meerdere contexten tegelijk kan worden gebruikt.Het vlieggewicht fungeert ook als een onafhankelijk object in elke context - het is niet te onderscheiden van een instantie van de objecten die niet worden gedeeld.

Proxy: Het is een object dat een ander object vertegenwoordigt. Het biedt een surrogaat- of plaatsaanduidingsobject om de toegang ertoe te regelen.

Gedragspatronen:

Keten van verantwoordelijkheid: Het is een manier om een ​​verzoek tussen een reeks objecten door te geven. Het vermijdt de koppeling met de afzender en stuurt een verzoek naar de ontvanger door meer dan één object de kans te geven het verzoek te behandelen. De ontvangende objecten worden geketend en doorgegeven het verzoek langs de ketting totdat een object het afhandelt.

wat is de scannerklasse in java

Opdracht: Het kapselt een opdrachtverzoek in als een object. Ingekapseld verzoek als een object, waardoor u clients met verschillende verzoeken, wachtrijen of logboekverzoeken kunt parametriseren en de ongedaan te maken bewerkingen kunt ondersteunen.

Tolk: Het is een manier om taalelementen in een programma op te nemen. Definieer, gegeven een taal, een weergave voor de grammatica ervan samen met een tolk die de weergave gebruikt om zinnen in de taal te interpreteren.

Iterator: De opeenvolgende toegang van de elementen van een verzameling biedt een manier om opeenvolgend toegang te krijgen tot de elementen van een geaggregeerd object zonder de onderliggende representatie bloot te leggen.

Bemiddelaar: Het definieert vereenvoudigt de communicatie tussen klassen. Definieer een object dat de interactie tussen een set objecten omvat. Bemiddelaar bevordert de losse koppeling door te voorkomen dat objecten expliciet naar elkaar verwijzen, en het laat je hun interactie onafhankelijk variëren.

Aandenken: Het registreert en herstelt de interne toestand van het object. Het schendt de inkapseling niet, legt de interne toestand van een object vast en maakt deze niet extern, zodat het object later in deze staat kan worden hersteld.

Waarnemer: Het is een manier om de wijziging aan een aantal klassen door te geven. Het definieert een één-op-veel-afhankelijkheid tussen objecten, zodat wanneer een object van status verandert, alle afhankelijkheden automatisch worden geïnformeerd en bijgewerkt.

Staat: Het verandert het gedrag van een object wanneer zijn toestand verandert. Hiermee kan een object zijn gedrag veranderen als het interne statusveranderingen zijn. Het object lijkt van klasse te veranderen.

fibonacci-algoritme c ++

Strategie: Het kapselt een algoritme in een klasse in en definieert een familie-algoritme, kapselt elk algoritme in en maakt het vervolgens uitwisselbaar. Strategie laat het algoritme variëren onafhankelijk van de klanten die het gebruiken.

Sjabloon: Stel de exacte stappen van een algoritme uit naar een subklasse. Het definieert het skelet van een algoritme in een bewerking, waarbij enkele belangrijke stappen worden uitgesteld tot subklassen. Met de sjabloonmethode kunnen we een subklasse maken om bepaalde stappen van een algoritme opnieuw te definiëren zonder de structuur van het algoritme te wijzigen.

Bezoeker: Het definieert een nieuwe bewerking voor een klasse zonder verandering. Vertegenwoordigen een bewerking die moet worden uitgevoerd op de elementen van een objectstructuur. Met Visitor kunt u een nieuwe bewerking definiëren zonder de klassen van de elementen waarop deze werkt te wijzigen.

Hiermee komen we aan het einde van dit artikel. Ik hoop dat je de ontwerppatronen in JavaScript, hun typen, belang en hun implementatie hebt begrepen.

Nu u de basisprincipes van ontwerppatronen in JavaScript begrijpt, kunt u het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java-ontwikkelaar willen worden. De cursus is ontworpen om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel kern- als geavanceerde Java-concepten samen met verschillende Java-frameworks zoals Hibernate De lente .

Heeft u een vraag voor ons? Vermeld het in het commentaargedeelte van deze blog 'Design Patterns in JavaScript' en we nemen zo snel mogelijk contact met u op.