I Design Pattern per la risoluzione dei problemi più comuni
I design pattern sono dei schemi di progettazione che offrono soluzioni standard per situazioni tipiche di progettazione orientata agli oggetti. In informatica, l’uso di questo termine si deve a Gamma, Helm, Johnson e Vlissides, la cosidetta GoF, Gang of Four, che nel 1994 pubblico il libro Design Patterns con i primi pattern della storia.
Ciascun pattern è costituito da quattro parti:
- Nome, possibilmente breve e significativo;
- Contesto, descrizione del contesto cui il pattern si applica;
- Soluzione, descrizione della soluzione al problema che il pattern si prefigge di risolvere;
- Conseguenze e compromessi con l’applicazione del pattern.
Un design pattern rappresenta una soluzione a problemi ricorrenti. I vantaggi dell’uso dei pattern sono notevoli, quando ci si trova in un contesto in cui si può applicare un pattern, saremo sicuri che la soluzione proposta dal pattern è la migliore che esiste. Con i pattern si riutilizza codice di alta qualità, pulito, elegante, generale e stabile.
I Design Pattern creazionali, strutturali e comportamentali
I pattern vengono suddivisi in base dalla GoF nel seguente modo:

Come si può notare, esistono 3 tipi di pattern (con relativi link agli approfondimenti):
- Pattern Creazionali, di cui fanno parte i pattern Factory, Abstract Factory, Singleton, Builder e Prototype;
- Pattern comportamentali, che include i pattern Chain of responsability, Iterator, Command, Strategy Pattern, Template Methiod Pattern, Interpreter, Mediator Pattern, Memento Pattern e Observer Pattern;
- Pattern Strutturali, che contiene i pattern Adapter, Composite, Decorator, Bridge, Facade, Flyweight e Proxy;
A cui si aggiungono altri tipi di pattern che non operano al livello di design del sistema come i pattern architetturali in cui un tipico esempio è il pattern Model View Controller.
In conclusione i Design Patterns offrono un alto livello di astrazione, molte classi ed oggetti possono essere trattati come una singola unità. Forniscono soluzioni a problemi comuni, risparmiandoci di dover pensare ogni volta che si affronta un problema comune alla soluzione migliore da adottare. I design pattern contengono già le soluzioni migliori scoperte fin’ora.