------------- 1 * -------------- * 1 --------
| Container |--------| Assignment |-----------| User |
------------- -------------- --------
^ ^
| |
---------- -------------
| | | |
---------- ---------- ---------- ---------------
| Flight | | Dinner | | Booking| | Reservation |
---------- ---------- ---------- ---------------
Questo problema è uno che ho trovato in diverse occasioni ma non ho mai trovato una soluzione elegante per:
Nel mio modello di sistema (in rotaie), che mappa al database, ho bisogno di avere Users
che può essere aggiunto a Containers
a Assignments
.
Ora, ci possono essere molte cose che possono essere contenitori:
- Un
Flight
è unContainer
. Può contenereUsers
. In tal caso, il% concreto diAssignment
è unBooking
. - Un
Dinner
è unContainer
. Può contenereUsers
. In tal caso, il% concreto diAssignment
è unReservation
. - E molti altri. Ottieni il mio punto.
Quindi ho nozioni astratte di Container
e Assignment
. Containers
hold Assignments
e ho anche implementazioni concrete di esse, con ogni implementazione concreta di Container
che corrisponde a un'implementazione concreta di Assignment
. Il design semplice è come sopra. Il mio problema principale è che non esprime la relazione tra ciascun contenitore di cemento e l'assegnazione concreta.
Qualche idea su come progettare meglio questo?