------------- 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?