Come applicare le regole aziendali in una struttura gerarchica di contenitori

0

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:

  1. Un container non può essere spostato più in basso in una gerarchia. IE, non posso mettere la casella A nel riquadro B.
  2. Non riesco a spostare un contenitore in un contenitore appropriato che abbia capacità. (questo è risolto, piuttosto semplice).
  3. 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?

    
posta Adam Wells 28.12.2017 - 18:34
fonte

1 risposta

3

Le regole 1 e 3 possono essere piegate insieme come una regola: le mosse non possono cambiare il livello.

Questo può essere risolto applicando questa regola nel codice che farebbe la mossa. Questo codice dovrebbe capire come attraversare la struttura. Basta controllare che la fonte sia alla stessa profondità della destinazione.

Finché quel codice è l'unico codice in grado di eseguire una mossa, viene applicata la regola aziendale.

    
risposta data 28.12.2017 - 18:53
fonte

Leggi altre domande sui tag