Sono abbastanza nuovo per il processo di progettazione OO, quindi per favore abbiate pazienza con me ....Domanda disegno OO - genitore/figlio (i) - circolare?
Ho due entità che ho bisogno di modellare come classi, li chiamano padre e figlio (che è abbastanza vicino al reale dominio problematico). Un genitore avrà uno o più figli - non ho interesse, in questa applicazione, in genitori senza figli.
Dove il mio cervello sta uscendo a pranzo dipende dal fatto che devo essere in grado di trovare l'uno dall'altro. Nel mio database posso implementarlo con una normale relazione di chiave esterna, e la natura basata su set di SQL rende facile trovare tutti i figli per un dato genitore, o il genitore per un dato bambino. Ma come oggetti ...?
I pensare che che il genitore dovrebbe portare una raccolta (elenco, qualunque) di bambini. Penso anche che ogni bambino dovrebbe portare un riferimento al suo genitore. La natura circolare dei riferimenti, tuttavia, mi fa male alla testa.
Am I:
- Sulla strada giusta?
- Completamente spento? Se sì, cosa dovrei fare in modo diverso?
Questo sarà quasi certamente implementato in VB.NET, ma sono un modo di tagliare il codice ancora.
Modifica dopo 8 risposte: tutte le
Grazie. È stato difficile scegliere solo una risposta da accettare.
Per chiarire un paio di cose che sono state interrogate nelle risposte:
- genitori e bambini sono molto diversi entità - non c'è successione relazione a tutti. Ho scelto i nomi che ho fatto perché sono davvero molto vicini al dominio del problema reale e ora vediamo che è una fonte di confusione da una prospettiva OO .
- La gerarchia è profonda solo un livello - I bambini non avranno mai figli all'interno dell'applicazione.
Grazie ancora.
Anche i bambini possono avere figli o una gerarchia a livello singolo? Se è multilivello, devi guardare il modello Composito. –
Non si tratta solo di una questione temporale vs spazio con memorizzazione di collegamenti nei nodi? Dipende dai vincoli ... se lo spazio non è un problema, la memorizzazione dei collegamenti è ok, purché abbiano integrità –
@Harper Shelby - È a livello singolo. I bambini non avranno mai figli propri (in questa applicazione). Bella domanda, però. – RolandTumble