Buoni schemi di progettazione all'interno di JavaFX - MVC?

5

Ho usato molto JavaFX e ho familiarità con gli aspetti tecnici. Ora, mentre affronterò un'applicazione molto grande con centinaia di visualizzazioni, voglio essere sicuro di iniziare con un solido design. Questa è puramente un'applicazione client, il back-end è altrove.

Devo anche menzionare che si tratta di un'applicazione MDI (Multiple document interface), che non fa altro che peggiorare la complessità.

Passa al tl; dr se non vuoi leggere il seguente rant.

Nella mia mente, i controllori non dovrebbero comunicare tra loro. Ogni parte del sistema dovrebbe essere modulare e inconsapevole delle altre parti, con qualche controller master che le stringa tutte insieme. Non sono sicuro di come ciò sia possibile all'interno di JavaFX. Ciò è aggravato dal fatto che ci sono molte istanze di una vista / controller FXML all'interno della MDI (che chiamerò MDIRoot).

Questo esempio QUI è la cosa più vicina che mi è piaciuta, ma ci sono alcuni problemi evidenti. Il problema principale con questo è nell'esempio, tutti i controller esisteranno per la durata del programma. Ma molte applicazioni anche semi-complesse avranno controller FXML che non esistono in ogni momento. Quindi, come inizializzare l'istanza MainController degli altri controller? L'altro problema ovvio è che nel mio caso ci possono essere molte istanze di un controller. Quindi avrei bisogno del MainController per avere una lista per ogni controller. Il terzo problema è che MainController è solo il controller FXML per la radice del progetto, che nel mio caso (MDI) ha la sua logica. Non dovrebbe qualcosa di degno di essere un controller "principale" essere completamente indipendente dalla propria logica, e focalizzarsi interamente sull'incapsulamento degli altri controller?

tl; dr: sto riscontrando problemi nel trovare un modo per utilizzare in modo efficace MVC (o MVP o qualsiasi altra cosa suggerita in realtà) per un'applicazione MDI su larga scala in JavaFX. Se qualcuno ha esempi o input o qualcosa, lo apprezzerei. Gli esempi di codice potrebbero essere utili, o anche le spiegazioni specifiche di JavaFX su come implementare un design piacevole quando l'applicazione diventa grande (con l'unica esigenza che i controller non parlino tra loro).

    
posta skex 09.11.2016 - 01:12
fonte

1 risposta

1

Dai un'occhiata a questo quadro dolce, mi sono innamorato di questo e penso che lo farai anche tu!

link

Ecco il mio esempio:

link

Spero che aiuti ...

    
risposta data 10.11.2016 - 00:52
fonte

Leggi altre domande sui tag