appunti3s:aggregazione
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | appunti3s:aggregazione [2020/06/08 22:19] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Aggregazione ====== | ||
+ | {{: | ||
+ | * una linea continua con il simbolo del rombo vuoto vicino alla classe // | ||
+ | * i numerini indicano la molteplicità | ||
+ | * Ha sempre UNO SOLO verso di percorrenza (quindi una regola) | ||
+ | * la Composizione ha il simbolo del rombo pieno. | ||
+ | ===== Principio ===== | ||
+ | Il verbo usato per descrivere questa relazione è //has//: possedere, avere, essere composto da... | ||
+ | Nell' | ||
+ | |||
+ | ===== Come si realizza? ===== | ||
+ | Possedere un oggetto significa avere un oggetto membro di quel tipo... | ||
+ | Le classi componenti esistono indipendentemente dalla classe contenitore, | ||
+ | Se la molteplicità è maggiore di uno si implementa con array di puntatori o vector (i vector lavorano per copia) | ||
+ | </ | ||
+ | < | ||
+ | class B | ||
+ | { | ||
+ | //... | ||
+ | }; | ||
+ | |||
+ | class A | ||
+ | { | ||
+ | | ||
+ | B m_b; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Esempio ===== | ||
+ | File sorgenti di un esempio di {{: | ||
+ | |||
+ | ===== Esercizio ===== | ||
+ | Creare le classi per disegnare punti e segmenti sul piano cartesiano. | ||
+ | Lo stesso esempio può essere risolto: | ||
+ | * con l' | ||
+ | * con la composizione se considero di creare due nuovi punti per ogni segmento (non rappresento punti singoli) | ||
+ | * | ||
+ | ====Analisi del problema==== | ||
+ | - il segmento può essere creato a partire da punti pre-esistenti? | ||
+ | - cosa accade al punto se distruggo il segmento? | ||
+ | - cosa accade al segmento se distruggo un suo punto? | ||
+ | - un punto può appartenere a due segmenti contemporaneamente? |
appunti3s/aggregazione.txt · Last modified: 2020/06/08 22:19 by 127.0.0.1