You are here:
tecnoteca.it
Sezioni speciali
Ingegneria del software
Pattern
Tipi di Pattern
Design Patterns
Approfondimento
Approfondimento
Classificazione dei Design PatternsIn questo articolo di Ugo Landini vengono presentati suddivisi in diverse categorie a partire da alcuni autori (quelli del GoF, M.Grand e C.Larman): vengono così suddivisi in GRASP (General Responsibilities Assignment Software Patterns), fondamentali, creazionali, partizionamento, strutturali, comportamentali e sulla concorrenza. C’è da dire che le prime 2 categorie (i GRASP ed i fondamentali) anche se qui vengono definiti come pattern, in realtà sono piuttosto dei principi (vedasi il basso accoppiamento, l’alta coesione o la legge di Demeter) che sono le basi per i pattern veri e propri. Per alcuni di questi pattern vi è un approfondimento con i diagrammi in UML (e non in OMT come invece è utilizzato nel libro del Gof), una descrizione secondo la formula schematica utilizzata dal Gof (Intento, Altro Nome, Partecipanti, Motivazione, Conseguenze, Implementazione, Esempi e Pattern Correlati) e un esempio di codice sviluppato in Java (con JBuilder).
Diagrammi UML dei Design Patterns del GoF
I diagrammi presentati nel libro del GoF sono espressi in OMT (il predecessore dell’UML). Questo documento riporta tutti gli schemi dei pattern secondo il linguaggio UML ormai divenuto uno standard nell’analisi e progetto object oriented.
Applicazioni concrete dei Design Patterns
In questo 2 articoli in italiano viene presentato un esempio concreto di utilizzo dei pattern (i framework presenti nel JDK di Java) e viene sottolineato come i pattern oltre ad essere delle ottime soluzione, costituiscono uno strumento di documentazione per il fatto stesso che parlando degli specifici pattern utilizzati si ha immediatamente una rappresentazione di quale siano le architetture.
Viene preso in esame il concetto del framework inteso come “…serie di classi che collaborano tra di loro formando un design riutilizzabile per una specifica classe di software. Lo scopo di un framework è quello di definire la struttura di base di un'applicazione, classi e oggetti, e, soprattutto, la sequenza principale di un programma. Questi parametri iniziali permettono al programmatore di concentrarsi su parti specifiche della sua applicazione. “
“Un framework può essere descritto attraverso un’interazione tra pattern”.
Nel primo articolo viene descritta l’implementazione del pattern Observer nella gestione degli eventi e quella del pattern Strategy per la gestione dei layout.
Nel secondo articolo viene descritta l’implementazione del pattern Decorator per i filtri dei file, del design pattern Composite per la gestione delle relazioni tra Component e Container e vengono presentata altre architetture ricorrenti nel JDK.