Mentre sto disegnando il diagramma delle classi del mio progetto, mi chiedo ...
Prendiamo la relazione di Customer
con Order
per esempio.
Sembra piuttosto naturale e logica per aggregare Order
s a User
... Quindi dovrei? Perché anche se non vedo professionisti concreti che fanno questo (forse ne troveresti qualcuno?), Ne consta:
- Sulla istanza di
Customer
, dobbiamo iniettare le istanze diOrder
mentre non abbiamo bisogno di loro ... - L'istanza di
Customer
è più lenta rispetto a una relazione semplice perché dobbiamo interrogare i suoi ordini ogni volta, anche quando non ne abbiamo bisogno ...
Quindi in questo esempio è buono o cattivo aggregare gli ordini ai clienti?
Modifica
Possiamo pigiare carichi aggregati / materiali compositi che eliminano i contro che ho elencato, va bene. Eppure, ci costringe a caricare pigro invece di iniettare gli ordini come dipendenza ... Questo potrebbe essere un contro di per sé?
Potrei utilizzare direttamente il repository degli ordini per ottenere ordini da Customer
's id
quando ho bisogno e memorizzare gli ordini in una variabile semplice in qualsiasi altro punto del mio codice, non nella proprietà di Customer
. Quindi suppongo che non ci sarà più l'aggregazione ...
Quindi mi chiedo ancora se ci sia una ragione più pertinente per implementare l'aggregazione che solo "è ciò che dovremmo fare" ?
Sidenote : ho visto altre domande correlate ma le loro risposte sono solo teoriche e generiche. In ogni caso non mi aiuta a definire in questo tipo di caso quale tipo di relazione dovrei usare.