appunti3s:composizione
Differences
This shows you the differences between two versions of the page.
— | appunti3s:composizione [2020/06/08 22:19] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Composizione ====== | ||
+ | {{: | ||
+ | * una linea continua con il simbolo del rombo pieno appoggiato alla classe // | ||
+ | * i numerini indicano la molteplicità | ||
+ | * Ha sempre DUE versi di percorrenza (quindi due regole) | ||
+ | * l' | ||
+ | ===== Principio | ||
+ | * La classe del componente può andar a comporre una sola classe contenitore | ||
+ | * Non si possono creare nuovi oggetti senza creare prima il loro oggetto contenitore | ||
+ | ===== Descrizione ===== | ||
+ | |||
+ | Il verbo usato per descrivere questa relazione è //has//: possedere, avere, essere composto da... | ||
+ | Nella Composizione le classi componenti esistono solo in relazione alla classe contenitore. Non si possono creare oggetti al di fuori di tali classi. | ||
+ | |||
+ | ===== Come si realizza? ===== | ||
+ | Poiché la relazione è forte è necessario dichiarare una classe nel namespace di una classe contenitore. | ||
+ | In questo modo è realizzato anche il principio dell' | ||
+ | < | ||
+ | Class A | ||
+ | { | ||
+ | | ||
+ | Class B | ||
+ | { | ||
+ | }; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | In questo modo tutte le funzioni membro della classe contenitore hanno accesso a tutti i dati membro dell' | ||
+ | Se gli oggetti sono creati nello stack verranno inizializzati/ | ||
+ | |||
+ | Se è necessario usare più volte questi oggetti (come 4 gambe di un tavolo) si possono usare vector. | ||
+ | |||
+ | Non confondere la molteplicità con il numero di versi di navigabilità. | ||
+ | < | ||
+ | Se la molteplicità è maggiore di uno si implementa con i vettori</ | ||
+ | ===== Esempio ===== | ||
+ | |||
+ | Codice sorgente con 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) |
appunti3s/composizione.txt · Last modified: 2020/06/08 22:19 by 127.0.0.1