Design pattern
Un design pattern si può definire in modo conciso come una soluzione generale ad un problema ricorrente. Inventati inizialmente per nell'ambito dell'architettura dall'architetto Christopher Alexander, hanno trovato enorme successo in ambito informatico, soprattutto nell'ambito della programmazione orientata agli oggetti.
Un design pattern è costituito da:
- il nome, costituito da una o due parole che siano il più possibile rappresentative del pattern stesso;
- il problema, ovvero la descrizione della situazione alla quale si può applicare il pattern. Può comprendere la descrizione di classi o di problemi di progettazione specifici, come anche una lista di condizioni perchè sia necessario l'utilizzo del pattern;
- la soluzione, che descrive gli elementi costitutivi del progetto con le relazioni e relative implicazioni, senza però addentrarsi in una specifica implementazione. Il concetto è di presentare un problema astratto e la relativa configurazione di elementi adatta a risolverlo;
- le conseguenze, i risultati e i vincoli che derivano dall'applicazione del pattern. Sono fondamentali in quanto possono essere l'ago della bilancia nella scelta dei pattern: le conseguenze comprendono considerazioni di tempo e di spazio, possono descrivere implicazioni del pattern con alcuni linguaggi di programmazione e l'impatto con il resto del progetto.
L'uso di pattern nella descrizione di altri pattern dà origine ai cosiddetti linguaggi di pattern.
La Gang of Four
L'inizio del movimento pattern in informatica è considerato universalmente il libro Design Patterns, della cosiddetta Banda dei quattro (Gang of Four, Gof). Gli autori, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, di conseguenza, sono considerati i fondatori del movimento pattern.
Pattern Creazionali
I pattern creazionali nascondono i costruttori delle classi e mettono dei metodi al loro posto creando un'interfaccia. In questo modo si possono utilizzare oggetti senza sapere come sono implementati.
Pattern Strutturali
Pattern Architetturali
I pattern architetturali esprimono delle soluzioni adeguate alle fondamentali strutture o schemi di un sistema software.
Pattern Comportamentali
Pattern di metodologia
Voci correlate
- Anti-pattern
- Framework orientato agli oggetti
Bibliografia
- Gamma, E., Helm, R., Johnson, R. e Vlissides, J., Design Patterns: elementi per il riuso di software a oggetti, Addison Wesley, 1995, ISBN 887192150X
- Originale: Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley, 1995, ISBN 0201633612
- Eckel, B., Thinking in Patterns with Java, MindView (draft)