Attualmente sto lavorando al mio primo progetto java più grande (un gioco) e sto avendo già un po 'di problemi di organizzazione con solo poche (~ 40) classi .
che sto organizzando il mio gioco qualcosa di simile:Java: il modo migliore per accedere ai metodi da oggetti lontani
che sembra abbastanza organizzata per me come ogni classe più piccola è classificato in una classe più ampia. Ovviamente classi come la ObjectHandler
o la Model
conterranno più classi, altrimenti sarebbero inutili.
Ora il mio problema è: quando sto cercando di accedere al corrente PlayerSettings
dal DynamicObjects
nel GUI
(per esempio quando sto cercando di ottenere la posizione del giocatore al fine di trarre sulla tela), avrei dovuto creare un lungo percorso come questo: (. a tal fine ho impostato maggior parte dei parametri public
potrei anche renderle accessibili con get()
-metodi, ma che sembra ancora più disorganizzata a me)
int x = gui.engine.model.objHandler.player.playerSettings.getX();
La mia domanda è - sembra un po? ormal o ci sono modi migliori per risolvere questo problema organizzativo?
No, non è così che si dovrebbero accoppiare le proprie dipendenze. Come regola generale, "ogni unità dovrebbe parlare solo con i propri amici, non parlare con estranei". Vedi anche: [Law of Demeter] (http://en.wikipedia.org/wiki/Law_of_Demeter). –
È generalmente contro le regole della programmazione accedere a tutto pubblicamente in questo modo ....:/ma l'ho fatto in passato quando stavo solo imparando a mantenere le cose semplici. Funziona .... ma – TheJavaCoder16
Direi che per qualsiasi applicazione che desideri codificare, l'utilizzo di buone pratiche e modelli di progettazione è sempre il meglio che puoi fare. Per il caso dei giochi, perché non provi questo link? Mi è stato utile quando ho creato un gioco di ruolo qualche tempo fa: http://gameprogrammingpatterns.com/contents.html –