|
Ingegneria Informatica -
Ingegneria del Software
|
|
Scritto da Daniele Davi
|
|
Quando uno stesso problema si verifica molteplici volte, si cerca di trovare una soluzione che permetta di risolverlo in maniera efficiente e generica. Una soluzione di questo tipo, nella progettazione, prende il nome di "pattern". I design pattern sono delle strategie per la risoluzione dei problemi ricorrenti nella progettazione di applicazioni object-oriented. Una buona conoscienza dei design pattern e della terminologia ad essi correlata permette di velocizzare la progettazione e di migliorare la comunicazione tra i membri del team di sviluppo.
Un design pattern è formato da: - nome: è composto da una o due parole che ne astraggono il significato
- problema: è la descrizione astratta del problema che il pattern in oggetto si propone di risolvere
- soluzione: è la descrizione della soluzione ad alto livelo, che non prende in considerazione i dettagli implementativi, ma si limita
- conseguenze: l'insieme di risultati e di vincoli che derivano dall'applicazione del pattern, vengono utilizzate per valutare la convenienza nell'usare un pattern piuttosto che un altro.
In letteratura sono presenti riferimenti ad oltre 250 pattern, qui ci limiteremo ai 23 definiti dalla Gang Of Four nel libro "Design Patterns". I pattern individuati dalla GOF sono classificati secondo la tipologia di problema che promettono di risolvere, avremo dunque i Pattern Creazionali, dei Pattern Strutturali e dei Pattern Comportamentali, come elencato di seguito: Pattern Creazionali - Abstract Factory
- Builder
- Factory Method
- Lazy Initialization
- Prototype Pattern
- Singleton
Pattern Strutturali - Adapter
- Bridge
- Composite
- Container
- Decorator
- Extensibility
- Façade
- Flyweight
- Proxy
- Pipes and Filters
- Private class data
Pattern comportamentali - Chain of Responsibility
- Command
- Event Listener
- Hierarchical Visitor
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- Single Serving Visitor
- State
- Strategy
- Template Method
- Visitor
Nei prossimi articoli entreremo nel dettaglio dei vari design pattern. |