Al momento ho un programma in Java che simula i movimenti ferroviari. In sostanza, i treni arrivano su piattaforme, raccolgono e rilasciano passeggeri, e quindi procedono, rispettando la segnalazione laddove possibile. Tuttavia, al momento questo esiste solo nello stato del programma, e non c'è una vera e propria vista grafica di tutto ciò che accade.
Sarebbe molto più utile se si potesse vedere un diagramma della linea ferroviaria e su dove c'erano i treni. Per fare questo, tutto ora deve avere coordinate (x, y) in relazione allo JPanel in modo che possano essere disegnate. Ci sono probabilmente altri campi e metodi utili che sarebbero utili in termini di rappresentazione dello stato attuale.
Vedo due opzioni principali:
-
Semplicemente gettando tutto nelle classi originali. Tuttavia, non mi piace perché non è una proprietà di un treno che esiste in (2, 3) su un JPanel arbitrario, che sembra essere una rappresentazione.
-
Creazione di una classe Visualizer per ogni classe che deve essere disegnata, quindi ci sarebbe una classe TrainVisualizer , una classe PlatformVisualizer , ecc. e tutte queste classi erediterebbero da una classe generica Visualizer che gestirà le coordinate e così via. Il problema con questo è che ogni volta che creo qualcosa, fondamentalmente devo creare sia la cosa originale (cioè il treno), sia il visualizzatore. Questo mi sembra il pattern MVC, ma non l'ho mai capito del tutto, e sembra un po 'unideale dover avere due classi per praticamente tutto.
Quale sarebbe il modo migliore di aggiungere questo al programma esistente?