Sto lavorando a un'applicazione web che gestisce i congelatori di campioni in modo che i nostri ricercatori possano gestire e inventariare tutte le cose grossolane che hanno fatto. Un congelatore si presenta così:
1 Freezer
+- X Racks
+- Y Boxes
+- Z Cells
+- 3 Cassettes
+- 5 straws
Quindi, praticamente quello che sta succedendo è che ho una pila potenzialmente infinita di un oggetto contenente un altro oggetto e così via e così via. Il problema è che posso anche avere qualcosa di simile (dal momento che ci occupiamo anche di campioni per la gente della giustizia penale):
1 Freezer
+- 24 Rollers
+- 1 Cadaver
+- X Evidence Bags
+- Y Evidence Samples
Lordo, soprattutto perché entrambe le opzioni devono coesistere nello stesso programma e nello stesso back-end .
Ho pensato a un oggetto come questo che descrive di cosa si tratta e lo impila semplicemente:
public class SampleContainer{
public List<SampleContainer> ChildContainers { get; set; }
public string ContainerType { get; set; }
}
Ma questo mi mette nei guai dato che ho bisogno di descrivere cosa c'è nel contenitore, e questo varia abbastanza selvaggiamente (cioè, è un cadavere o un embrione di topo?).
Esistono schemi di progettazione appropriati? Qual è il modo migliore per modellare queste relazioni, senza perdere la mente di nessuno o degli altri?