If A -> B -> C each have composition
relationship. Are the root responsable
of creation and destruction of the
object B and C ?
È pratica comune, per A controllare la vita di B, e per B controllare la vita di C. In questo modo non c'è alcuna relazione tra A e C che è meglio disaccoppiamento . (AGGIORNAMENTO: o come ha detto Korhan, la durata di eg B dipende da A, una classe esterna potrebbe anche gestire la gestione a vita. L'essenza è, se il contenitore viene distrutto, normalmente ogni istanza che contiene anche distrutto.)
Questo è il caso di composizione .
What aggregations have that the simple
link or references doesn't ? What make
them different ?
Aggregazione è più specifico dell'associazione . L'aggregazione rappresenta una relazione parziale o parziale. Se il contenitore viene distrutto, il suo contenuto non lo è, questa è la principale differenza con la composizione. I contenuti sono probabilmente anche usati al di fuori del contenitore.
Un'associazione non ha una relazione 'ha una' diretta. È piuttosto una relazione "usa un". Questo può accadere ad esempio quando A ha bisogno di essere a conoscenza di C per qualche ragione. (prova ad impedirlo!) Quindi c'è un'associazione da A a C. Uno scenario più comune è quando una determinata funzione accetta un determinato tipo come input, ma non lo memorizza internamente. O quando viene chiamata una classe helper.