Ho avviato un progetto in cui ho bisogno di progettare un'applicazione che funzionerà come un editor di blocchi di codice, proprio come i lego di mindstorm e questo progetto di google. link
Quali sono gli approcci possibili per progettare un'applicazione di questo tipo in Java?
Più specificamente, supponendo che abbia un blocco A, come posso definire quali altri blocchi possono essere collegati con esso? Quello che penso è usare sottoclassi e controllare la gerarchia, o un'altra possibile soluzione potrebbe essere una sorta di tabella 2D che verificherà che una connessione sia valida (anche se penso che potrebbe diventare troppo grande?).
p.s: Devo forzare la corretta struttura del codice, e non controllarlo con parser alla fine. Quindi solo i blocchi che si adattano dovrebbero essere collegati.