Sto programmando un semplice gioco in Java ma sto cercando di farlo 'giusto' con un bel design pulito e senza hack.OO game design question
Ho due classi GamePanel
che riceve clic e pressioni dei tasti e Model
che contiene tutte le entità ed è responsabile dei loro aggiornamenti. Il modello deve sapere dove si trova il mouse dell'utente, ma non posso decidere il modo "giusto" per farlo.
Qualora il Model
ed ogni Entity
mantenere all'interno di un riferimento alla GamePanel
o semplicemente cache l'ultima posizione nota del mouse e di ricevere aggiornamenti dal GamePanel
regolarmente. Con la prima opzione quando viene creato il modello, sarà necessario fornire un riferimento allo GamePanel
e con il secondo l'ultima posizione del mouse verrà inviata come parametro al metodo World.update()
.
Nessuna di queste soluzioni sembra elegante, quindi mi chiedevo se c'è un modo "giusto" per fare ciò che mi è mancato.
Grazie, Ben.
Buona domanda, +1. –
Quindi immagino che il consenso sia che se la posizione del mouse è necessaria solo occasionalmente usare osservatori o ascoltatori di eventi e se la posizione del mouse è necessaria nella maggior parte degli aggiornamenti, fornire al modello un riferimento al pannello in modo che possa eseguire il polling? –