appunti3s:associazione
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
appunti3s:associazione [2018/11/09 15:02] – profpro | appunti3s:associazione [2020/06/08 22:19] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | [[appunti5s: | ||
+ | |||
+ | ====== Associazione ====== | ||
+ | {{: | ||
+ | * La relazione di Associazione si rappresenta con una o due frecce su una linea continua . | ||
+ | * L' | ||
+ | * I numerini indicano la molteplicità minima e massima (0..3, 1, *) | ||
+ | * Le classi possono avere un ruolo | ||
+ | * __Può avere due versi__ di navigabilità (una o due frecce sulla linea), cioè DUE regole | ||
+ | * La relazione di Dipendenza si rappresenta con la freccia a linea tratteggiata. (classi astratte??? | ||
+ | ===== Principio ===== | ||
+ | Il verbo usato per descrivere questa relazione è //uses//: utilizzare | ||
+ | |||
+ | ===== Come si realizza? ===== | ||
+ | Se A e B sono in relazione di associazione, | ||
+ | - avere funzioni che hanno come argomenti copie, puntatori o reference a oggetti di tipo B | ||
+ | - avere funzioni che restituiscono copie, puntatori o reference a oggetti di tipo B. | ||
+ | - avere membri di tipo reference o puntatori a oggetti di tipo B | ||
+ | < | ||
+ | Class B; // non serve la definizione completa di B... | ||
+ | |||
+ | Class A | ||
+ | { | ||
+ | | ||
+ | void fun(B& b); | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | A differenza dell' | ||
+ | |||
+ | ===== Esempio ===== | ||
+ | Esempio di codice che fa uso dell' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Esercizio ===== | ||
+ | ==== molti a molti ==== | ||
+ | scrivere per bene il testo dell' | ||
+ | **persona e auto** | ||
+ | |||
+ | ogni persona possiede piu auto | ||
+ | ogni auto appartiere a piu' persone | ||
+ | DUE REGOLE significa che c' | ||
+ | partendo da auto si puo' arrivare a persona e viceversa | ||
+ | |||
+ | contraddizione con precedente paragrafo??? | ||
+ | ???quando e' a uno si usa un puntatore alla classe vicina | ||
+ | ???quando e' a molti si usa un vettore di puntatori | ||
+ | |||
+ | tra due classi ci possonoo essere anche piu' relazioni | ||
+ | (appartenere e e guidare) associazione riflessiva?? | ||
+ | |||
+ | ==== Classi associative ==== | ||
+ | Se la relazione di associazione ha degli " | ||
+ | |||
+ | In realtà questo schema può essere realizzato in modo equivalente con tre classi " | ||
+ | ==== Uno a molti ==== | ||
+ | |||
+ | **correntista e conto** | ||
+ | |||
+ | ogni correntista possiede piu conti | ||
+ | ogni conto e posseduto da piu' correntisti | ||
+ | |||
+ | il saldo e' un dato private perche' | ||
+ | deve essere modificabile solo da un metodo del conto | ||
+ | VERSAMENTO e PRELIEVO | ||
+ | Due funzioni membro perche' | ||
appunti3s/associazione.txt · Last modified: 2020/06/08 22:19 by 127.0.0.1