Sto cercando di sviluppare la mia prima applicazione MVC principale e, in quanto tale, sono nuovo a farlo su larga scala. Ho letto tutto quello che posso online e sono costantemente impegnato a rendere il mio codice il più pulito possibile e a non introdurre cattive pratiche. In questo momento, sto iniziando a chiedermi se il mio setup è come sarebbe stato fatto nel mondo reale.
Al momento, ho la mia classe contenitore principale e sottoclassi che possono apparire all'interno.
Supponiamo che la vista sia simile a questa:
-----------------------------------------------------
| |
| Main |-----------------| |
| |------| |D |-----------| | |
| | A | | | B | C | | |
| | | | | | | | |
| |------| | |-----------| | |
| |-----------------| |
-----------------------------------------------------
Dove Main è il contenitore di visualizzazione principale e all'interno sono gli elementi A, B e C.
Le viste interne possono essere dinamiche, quindi diciamo che abbiamo anche i nostri MVC per A, B e C.
1) È sbagliato che queste classi siano connesse tra loro in questo modo?
/------A
/
Main
\ /-B
\ /
\-----D---C
Con questo intendo entrambe le connessioni sono bidirezionali.
Per ottenere "A" da B, potrei chiamare qualcosa come this.getD().getMain().getA()
dall'oggetto C.
Indica un problema di progettazione se si tratta di una rete in cui le cose possono spostarsi avanti e indietro?
Esiste una cattiva pratica di passare l'oggetto A in modo che la catena non debba essere eseguita?
Questo può presumere che non ci siano valori nulli per il gusto di questo esempio
2) Se quanto sopra non va bene, è irragionevole fare un singleton statico fuori dall'oggetto Main e avere altre classi che lo accedono tramite un getter statico?
Non so se una tale pratica è cattiva o meno se sai che la finestra principale non è mai stata pensata per essere istanziata due volte (e tu gli impedisci di farlo). Un esempio potrebbe essere ottenere A da C, qualcosa come Main.getA()
.
Mi scuso se parte di questo è vago. Come ho detto, sono nuovo di questo e non mi piacerebbe altro che tagliare le cattive abitudini. Se c'è qualcosa di sbagliato o giusto su ciò che ho fatto? Se c'è qualcosa di sbagliato, come lo faresti?