User Tools

Site Tools


appunti3s:associazione

associazioni_possibili

Associazione

  • La relazione di Associazione si rappresenta con una o due frecce su una linea continua .
  • L'Associazione ha un nome
  • 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, allora le funzioni membro della classe A usano (usa) oggetti di tipo B. Questo si può tradurre in:

  1. avere funzioni che hanno come argomenti copie, puntatori o reference a oggetti di tipo B
  2. avere funzioni che restituiscono copie, puntatori o reference a oggetti di tipo B.
  3. avere membri di tipo reference o puntatori a oggetti di tipo B
Class B; // non serve la definizione completa di B...

Class A
{
   public:
           void fun(B& b);
};

A differenza dell'aggregazione, nell'associazione il compilatore deve solo usare un indirizzo di memoria e non deve conoscere necessariamente la dimensione dell'oggetto usato.

Esempio

Esempio di codice che fa uso dell'associazione

Esercizio

molti a molti

scrivere per bene il testo dell'esempio… persona e auto

ogni persona possiede piu auto ogni auto appartiere a piu' persone DUE REGOLE significa che c'e' un doppio orientamento partendo da auto si puo' arrivare a persona e viceversa

contraddizione con precedente paragrafo???come si realizza? ???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 “attributi” si fa una linea tratteggiata perpendicolare a quella continua che rappresenta l'associazione e ci si attaccano gli attributi con una classe (detta appunto cl. associativa)che ha lo stesso nome dell'associazione. Quella classe conterrà tali attributi

In realtà questo schema può essere realizzato in modo equivalente con tre classi “normali” e due associazioni

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' devono operare sul saldo del conto

appunti3s/associazione.txt · Last modified: 2020/06/08 22:19 by 127.0.0.1