I Design Pattern, modelli, sono un modo di scrivere codice.
Più semplicemente rappresentano delle strutture, di blocchi di codice, suggerite, per poter gestire al meglio determinate "situazioni" di sviluppo.
Sono soluzioni tecniche a problemi di progettazione del software.
Essi rappresentano, modelli progettuali di riferimento, schemi logici di risoluzione, offrendo un modello di riferimento per la realizzazione, gestione, di componenti software e/o situazioni di sviluppo.
Tradizionalmente i Design Pattern vengono raggruppati in categorie per evidenziarne l'obiettivo principale.
Creazionali | patterns per la creazione di classi e oggetti |
Strutturali | patterns per la gestire le relazioni tra gli oggetti, per la scalabilità dell'architettura di un'applicazione |
Comportamentali | patterns per la comunicazione tra gli oggetti di un'applicazione |
Questi tipi di patterns si occupano della creazione di classi e oggetti.
A prima vista può sembrare un problema banale ma in applicazioni complesse può risultare utile controllare il modo in cui vengono creati gli oggetti.
I patterns strutturali sono utili per gestire le relazioni tra gli oggetti, per rendere scalabile l'architettura di un'applicazione in modo da poter aumentare o diminuire le capacità di un programma.
Utilizzarli previene problematiche derivanti da variazioni successive, in fase di sviluppo, come implementazioni o rimozioni di funzioni in una applicazione.
L'obbiettivo di questi patterns è gestire la comunicazione tra gli oggetti di un'applicazione.
Quelli sopra elencati sono solo alcuni dei patterns più comuni ed utilizzati.
E' possibile facilmente immaginare l'esistenza di numerosi altri patterns trattandosi sostanzialmente di "code snippet" ovvero di "blocchi/frammenti di codice"; un'altro interessante pattern è il Pattern Promise.
In sostanza tutti questi Pattern altro non sono che strategie su come scrivere codice ma di fatto al loro interno non troveremo nulla di nuovo per quanto riguarda il linguaggio Javascript.
In ingegneria del Software, il termine Gang of Four ("banda dei quattro"), spesso abbreviato in GoF, è usato per riferirsi agli autori del libro Design Patterns: Elements of Reusable Object-Oriented Software: Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides; libro con cui, gli stessi, hanno messo nero su bianco come loro scrivessero il codice e come lo strutturassero.
La lettura di questo libro è consigliabile per chi vuole meglio comprendere la strategia e il disegno complessivo del software; il libro non vi aiutera' a scrivere il codice, ma a scegliere la strategia da implementare.