Una breve guida ai design pattern in JavaScript



Questo articolo ti aiuterà con un approccio dettagliato ai Design Pattern in JavaScript in modo semplificato per una migliore comprensione.

sono le soluzioni avanzate orientate agli oggetti ai problemi software comunemente ricorrenti. I modelli sono i disegni riutilizzabili e le interazioni degli oggetti. Ogni modello ha un nome e diventa parte di un vocabolario quando si discute di soluzioni di design complesse.

Cosa sono i design pattern in JavaScript?

può essere definito come un file modello di software o una descrizione per risolvere un problema che si verifica in più istanze durante la progettazione di un'applicazione software o di un framework software.





Builder Design Patterns

Ora, parliamo della Gang of Four (GoF)



Una banda di quattro

Il 23 Gang of Four (GoF) i modelli sono generalmente considerati la base per tutti gli altri modelli.

The Gang of Four (GoF) da Design Patterns:



Elementi di software riutilizzabile orientato agli oggetti, Addison-Wesley Professional Computing Series, di Erich Gamma, Richard Helm, Ralph Jhonson, e John Vlissides. TQuesti 23 pattern GoF sono generalmente considerati la base per tutti gli altri pattern.Sono suddivisi in tre gruppi: Creazionale, strutturale e comportamentale.

Tipi di modelli di design

Esistono fondamentalmente tre diversi tipi di Design Pattern in JavaScript. Sono i seguenti:

Modelli creazionali

Fabbrica astratta: Questo crea un'istanza con diverse famiglie di classi. Ciò fornisce un'interfaccia per la creazione di famiglie che sono oggetti correlati o dipendenti senza alcuna specifica delle loro classi concrete.

Costruttore: Questa costruzione di oggetti separati dalla sua rappresentazione. Separa anche la costruzione di un oggetto complesso dalla sua rappresentazione in modo che lo stesso processo di costruzione possa essere creato con rappresentazioni diverse.

Metodo di fabbrica: Questo crea un'istanza per diverse classi derivate. Definisce anche un'interfaccia per la creazione di un oggetto, ma consente alla sottoclasse di decidere quale classe istanziare. Questo ha anche un metodo di fabbrica che consente a una classe di differire l'istanza di sottoclassi.

Prototipo: È un'istanza completamente inizializzata che può essere copiata o clonata. In particolare, il tipo di oggetti da creare utilizzando un'istanza prototipica, crea nuovi oggetti copiando questo prototipo.

Singleton: Si tratta di istanze completamente inizializzate da copiare o da clonare.È di un tipo specifico di oggetti da creare utilizzando un'istanza prototipica e creare nuovi oggetti copiando questo prototipo.

come avvisare in javascript

Modelli strutturali

Adattatore: Corrisponde alle interfacce delle diverse classi. Converte anche l'interfaccia di una classe in un'altra interfaccia tranne quella che ha il client. L'adattatore consente inoltre alle classi di lavorare insieme che non avrebbero potuto essere altrimenti a causa delle interfacce di incompatibilità.

Ponte: Separa l'interfaccia di un oggetto dalla sua implementazione. Separare un abstract dalla sua implementazione in modo che i due possano variare indipendentemente.

Composito: Una struttura ad albero è composta da oggetti semplici e compositi, oggetti composti in strutture ad albero per rappresentare gerarchie parzialmente intere. Composite consente ai clienti di trattare i singoli oggetti e le composizioni di oggetti in modo uniforme.

Decoratore: Aggiunge dinamicamente le responsabilità agli oggetti. Attribuisce dinamicamente le responsabilità aggiuntive a un oggetto. I decoratori forniscono anche un'alternativa flessibile alla sottoclasse per estendere le funzionalità.

Facciata: Una singola classe che rappresenta un intero sottosistema e fornisce un'interfaccia unifica a un insieme di interfacce in un sistema. Façade definisce un'interfaccia di livello superiore che rende il sottosistema più facile da usare.

Peso mosca: Un'istanza a grana fine utilizzata per una condivisione efficiente per supportare in modo efficiente un gran numero di oggetti a grana fine. Un peso mosca è un oggetto condiviso che può essere utilizzato simultaneamente in più contesti.Il peso mosca funge anche da oggetto indipendente in ogni contesto: è indistinguibile da un'istanza degli oggetti che non sono condivisi.

Proxy: È un oggetto che rappresenta un altro oggetto. Fornisce un oggetto sostitutivo o segnaposto per controllare l'accesso ad esso.

Modelli comportamentali:

Catena di responsabilità: È un modo per passare una richiesta tra una catena di oggetti. Evita l'accoppiamento con il mittente e invia una richiesta al suo destinatario dando la possibilità a più di un oggetto di gestire la richiesta. Gli oggetti riceventi vengono concatenati e trasmessi la richiesta lungo la catena finché un oggetto non la gestisce.

Comando: Incapsula una richiesta di comando come oggetto. Richiesta incapsulata come oggetto, che consente quindi di parametrizzare i client con richieste diverse, richieste di coda o di registro e supportare le operazioni annullabili.

Interprete: È un modo per includere elementi del linguaggio in un programma. Data una lingua, definire una rappresentazione per la sua grammatica insieme a un interprete che utilizza la rappresentazione per interpretare le frasi nella lingua.

Iteratore: L'accesso sequenziale degli elementi di una raccolta fornisce un modo per accedere agli elementi di un oggetto aggregato in modo sequenziale senza esporre la rappresentazione sottostante.

Mediatore: Definisce semplifica la comunicazione tra le classi. Definisci un oggetto che incapsuli il modo in cui interagisce un insieme di oggetti. Mediatore promuove l'accoppiamento libero impedendo agli oggetti di fare riferimento esplicitamente l'uno all'altro e consente di variare la loro interazione in modo indipendente.

Ricordo: Cattura e ripristina lo stato interno dell'oggetto. Non viola l'incapsulamento, acquisisce ed esternalizza lo stato interno di un oggetto in modo che l'oggetto possa essere ripristinato in questo stato in un secondo momento.

Osservatore: È un modo per notificare il cambiamento a un certo numero di classi. Definisce una dipendenza uno-a-molti tra gli oggetti in modo che quando un oggetto cambia stato, tutte le sue dipendenze vengono notificate e aggiornate automaticamente.

Stato: Altera il comportamento di un oggetto quando il suo stato cambia. Consente a un oggetto di alterare il proprio comportamento quando cambia lo stato interno. L'oggetto sembrerà cambiare la sua classe.

Strategia: Incapsula un algoritmo all'interno di una classe e definisce un algoritmo di famiglia, incapsula ciascuno di essi e lo rende intercambiabile. La strategia consente all'algoritmo di variare indipendentemente dai client che lo utilizzano.

Modello: Rimanda i passaggi esatti di un algoritmo a una sottoclasse. Definisce lo scheletro di un algoritmo in un'operazione, rimandando alcuni passaggi importanti alle sottoclassi. Il metodo del modello ci consente di creare una sottoclasse per ridefinire alcuni passaggi di un algoritmo senza modificare la struttura dell'algoritmo.

Visitatore: Definisce una nuova operazione in una classe senza modifiche. Rappresenta un'operazione da eseguire sugli elementi di una struttura di oggetti. Visitor consente di definire una nuova operazione senza modificare le classi degli elementi su cui opera.

Con questo, arriviamo alla fine di questo articolo. Spero che tu abbia compreso i Design Pattern in JavaScript, i loro tipi, l'importanza e la loro implementazione.

Ora che hai compreso le basi di Design Patterns in JavaScript, controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per studenti e professionisti che desiderano diventare sviluppatori Java. Il corso è progettato per darti un vantaggio nella programmazione Java e addestrarti per concetti Java sia di base che avanzati insieme a vari framework Java come Hibernate & Primavera .

Hai domande per noi? Menzionalo nella sezione commenti di questo blog 'Design Patterns in JavaScript' e ti risponderemo il prima possibile.