Quindi, in precedenza Ho fatto questa domanda sugli oggetti a profondità infinita e sono arrivato ad usare il pattern Composite per modellare che un congelatore contiene un rack contiene una scatola e così via e così via.
Ora è stato chiesto di aggiungere la possibilità di spostare un contenitore (e il suo contenuto) da una gerarchia all'altra. Quindi, potrei iniziare con una situazione del genere:
Freezer A
+-Rack 1
+--Box A
+---Sample A
Freezer B
+-Rack 2
+--Box B
Quello che mi piacerebbe fare è spostare la casella A (e quindi il campione A) da Freezer A Rack 1 a Freezer B Rack 2. Ci sono alcune regole a questo:
- Un container non può essere spostato più in basso in una gerarchia. IE, non posso mettere la casella A nel riquadro B.
- Non riesco a spostare un contenitore in un contenitore appropriato che abbia capacità. (questo è risolto, piuttosto semplice).
- Non riesco a spostare un contenitore nella gerarchia. Una casella non può essere allo stesso livello di un rack o di un congelatore.
Come posso rappresentare la x può contenere y di questi contenitori e applicarla quando si spostano tra due contenitori?