UGIdotNET Home UGIdotNET Home
UGIdotNET Blogs UGIdotNET Blogs
UGIdotNET Forum UGIdotNET Forum
MSDN Architetti MSDN Architetti
Visualizza Modifiche Visualizza Modifiche
Modifica Modifica
Stampa Stampa
Modifiche Recenti Modifiche Recenti
Sottoscrizioni Sottoscrizioni
Ufficio Oggetti Smarriti Ufficio Oggetti Smarriti
Cerca Riferimenti Cerca Riferimenti
Rinomina Rinomina
Cerca

Versioni

28/03/2007 22.38.45
82.52.16.217
26/04/2006 23.45.32
RiccardoGolia-87.5.178.75
24/04/2006 11.59.59
LucaMinudel-193.42.138.33
11/04/2006 8.56.56
-84.222.20.181
11/04/2006 8.56.45
-84.222.20.181
Elenco completo versioni Elenco completo versioni
Pattern Grasp
.
Summary General Responsability Assignment Software Patterns, ovvero i pattern relativi all'assegnazione delle responsabilità nell'ambito di una struttura ad oggetti.

Pubblicato nella Rubriki Numero 2 - 11 Apr 2006 da Riccardo Golia

Introduzione

Un modo per poter concepire il disegno object oriented può essere quello che considera come fondamentali i concetti di responsabilità, ruolo e collaborazione. In una ottica come questa i PatternGRASP (General Responsability Assignment Software Patterns) si rivelano assai utili in quanto permettono di identificare e descrivere i principi base per l'assegnazione delle responsabilità agli oggetti in relazione al loro ruolo e alle loro collaborazioni e dipendenze.

Le responsabilità

Per parlare di questo cluster di pattern è innanzitutto indispensabile chiarire il concetto di responsabilità nell'ambito del disegno object oriented. Una responsabilità rappresenta un servizio o un gruppo di servizi forniti da un elemento (inteso come classe o sottosistema) che racchiude uno o più scopi e/o obblighi associati all'elemento stesso. Le responsabilità si riferiscono quindi agli obblighi e/o al comportamento che un oggetto ha in funzione del suo ruolo. Possiamo sostanzialmente classificare le responsabilità nelle due categorie elencate di seguito.

  • Responsabilità di fare:
    • un oggetto può direttamente fare qualcosa (esempi: eseguire elaborazioni sui dati oppure creare altri oggetti);
    • un oggetto può dare inizio all'azione in un altro oggetto;
    • un oggetto può fungere da contesto nell'ambito del quale le attività di altri oggetti vengono gestite, controllate e coordinate.
  • Responsabilità di conoscere:
    • un oggetto può conoscere il suo stato mascherato all'esterno e incapsulato in campi privati;
    • un oggetto può conoscere oggetti correlati con i quali instaura una relazione di dipendenza;
    • un oggetto può conoscere informazioni che è in grado di derivare da elaborazioni e calcoli.

Le responsabilità devono essere individuate e assegnate alle classi di oggetti durante il disegno al fine di ottenere una architettura che rispetti in particolar modo i requisiti non funzionali. E' fondamentale associare in modo corretto le responsabilità per creare strutture ad oggetti caratterizzate da una buona estendibilità e flessibilità.

La traduzione delle responsabilità in classi e metodi dipende dal loro livello di granularità: le responsabilità più grandi coinvolgono in genere una o più classi, le responsabilità più piccole che corrispondono a comportamenti specifici coinvolgono solitamente un unico metodo. Sia classi che metodi possono tra loro collaborare al fine di assolvere al loro compito: da qui nasce il concetto di collaborazione, strettamente legato a quello di responsabilità.

I pattern GRASP

I GRASP identificano nove principi e/o blocchi di costruzione di base della progettazione object oriented. Comprendere ed essere in grado di applicare le idee su cui si fondano i GRASP permette agli sviluppatori (solitamente meno abituati ad affrontare aspetti teorici e pratici collegati al disegno object oriented) di acquisire velocemente la padronanza di questi principi fondamentali che costituiscono la base del disegno di applicazioni object oriented.

Riferimenti

I concetti trattati in questa sezione sono ottimamente esposti nel libro Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, scritto da Craig Larman ed edito da Prentice Hall PTR (anno 2005).

UGIdotNETWiki

UGIdotNETWiki è il WikiWiki italiano dedicato a .NET

Se è la prima volta che senti parlare di Wiki, leggi il BenvenutoAiVisitatori e WikiInUnMinuto, oppure il ManualePassoPassoDelWiki.

Argomenti Recenti

  • PatternGrasp
© 2008 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali