Please enable JavaScript.
Coggle requires JavaScript to display documents.
Capitolo 20 - GRASP: progettazione di oggetti con responsabilità - Coggle…
Capitolo 20 - GRASP: progettazione di oggetti con responsabilità
RDD - progettazione guidata dalle responsabilità
aspetti fondamentali
ruoli
collaborazioni
responsabilità
un'astrazione di ciò che fa o rappresenta un oggetto o un componente software
sono correlate agli obblighi o al comportamento di un oggetto in relazione al suo ruolo
2 tipi
di fare
cereare un oggetto o eseguire un calcolo
controllare e coordinare le attività di altri oggetti
chiedere ad altri oggetti di eseguire azioni
di conoscere
conoscere gli oggetti correlati
conoscere cose che può derivare o calcolare
conoscere i propri dati privati
assegnate durante la progettazione a oggetti
esistono dei citeri per assegnare le responsabilità
I GRASP
danno un nome e descrivono alcuni principi base per assegnare le responsabilità , quindi è utile conoscerli per sostenere la RDD
Pattern
è una descrizione con un nome, di un problema di progettazione ricorrente e di una soluzione ben provata e che può essere applicata a nuovi contesti
definiscono 9 principi o blocchi di costruzione elementare
INFORMATION EXPERT
Assegna una responsabilità alla classe che possiede le informazioni necessarie per soddisfarla
informazioni su altri oggetti sullo stato di un oggetto
incoraggiando in tal modo definizioni di classe più coese e "leggere",
LOW COUPLING
l'accoppiamento è una misura di quanto fortemente un
elemento è connesso ad altri elementi, li conosce o dipende da essi.
Accoppiamneto basso
riduce il tempo i costi e i difetti nella modifica del software
Una sottoclasse è fortemente accoppiata alla sua superclasse.
CREATOR
responsabilità di fare
soddisfa queste condizioni
B contiene o aggrega con una composizione oggetti di tipo A
B utilizza stretta1nente A
B registra A.
B possiede i dati per l'inizializzazione di A
Favorisce accoppiamento basso
CONTROLLER
Come connettere lo strato UI allo strato della logica applicativa?
Deve soddisfare una delle seguenti scelte:
il "sistema" complessivo, un "oggetto radice", un dispositivo all'interno del quale viene eseguito il software, un punto d'accesso al software o un sottosistema principale (sono tutte variantidi un facade controller)
Rappresenta uno scenario di un caso d'uso all'interno del quale si verifica l'operazione di sistema (un controller di caso d'uso o controller di sessione)
è il primo oggetto oltre lo strato UI che è responsabile di ricevere o gestire un messaggio di un'operazione di sistema.
il controller coordina e controlla le attività ma non esegue di per sè molto lavoro
CONTROLLERE GONFIO
Se una classe controller ha una coesione bassa se non è focalizzata e gestisce responsabilità in troppe aree
3 more items...
HIGH COHESION
La coesione è una qualità fondamentale
è una misura di quanto fortemente siano correlate e concentrate le responsabilità di un elemento
BLOB
è un oggetto ed è responsabile dell'intero svolgimento di un compito complesso è circondato da diversi oggetti semplici, usati soprattutto come contenitori di dati o che sanno svolgere solo compiti molto semplici.
le altre classi vengono dette
ANEMICHE
maggiore chiarezza e facilità di comprensione del progetto
Generai Responsibility Assignment Software Patterns,
Pattern GOF
per idee di progettazione più avanzate