Design GRASP Flashcards
Cosa significa l’acronimo RDD?
Responsibility-Driven Development
Cioè
Progettazione Guidata dalle Responsabilità
Cos’è RDD?
Progettazione a oggetti basata su:
- Responsabilità
gli oggetti hanno responsabilità - Ruoli
la capacità che un oggetto ha di partecipare ad una relazione con un altro oggetto - Collaborazioni
gli oggetti collaborano per raggiungere un obiettivo
Come può essere la granularità delle responsabilità?
- Fine
Quando si tratta di aggiungere un metodo a una classe - Grossa
Quando si tratta di progettare numerose classi
Che tipi di responsabilità esistono?
- Responsabilità di fare
- Responsabilità di conoscere
Quando si parla di “Responsabilità di fare” di che si tratta?
- Fare qualcosa esso stesso, come eseguire un calcolo
- Dare inizio a un’azione in altri oggetti
- Controllare e coordinare le attività di altri oggetti
Quando si parla di “Responsabilità di conoscere” di che si tratta?
- Conoscere i propri dati privati incapsulati
- Conoscere gli oggetti correlati
- Conoscere cose che può derivare o calcolare
Quando si assegnano le responsabilità?
Durante la modellazione e la codifica
Cosa significa l’acronimo GRASP?
General Responsibility Assignment Software Patterns
Cos’è GRASP?
I pattern GRASP danno un nome e descrivono i principi base per la progettazione di oggetti e l’assegnazione di responsabilità
Cos’è il pattern Information Expert?
Il pattern Information Expert fornisce i modelli generali associati all’assegnazione delle responsabilità agli oggetti
Cosa si intende per responsabilità?
Si intende una astrazione di ciò che fa un oggetto
Come intende l’UML una responsabilità?
Un contratto o un obbligo di un classificatore
Come si assegnano le responsabilità?
- Si identificano le responsabilità e si considerano una alla volta
- Ci si chiede a quale oggetto va assegnata
- Ci si chiede come fa l’oggetto a soddisfare la responsabilità, se da solo o collaborando
Quali sono i principali pattern GRASP?
- Creator
- Information Expert
- Low Coupling
- High Cohesion
- Controller
Quali altri pattern GRASP ci sono?
- Polymorphism
- Pure Fabrication
- Indirection
- Protected Variations