Attualmente sto lavorando su tre applicazioni Vaadin e mi sento davvero come se mi mancasse qualcosa. Prima lavoravo con Spring MVC, in cui l'architettura è chiara e disaccoppiata, si iniettano servizi ai controller e non si accoppiano il controller all'IU e così via.Vaadin: Design patterns
Ora in Vaadin questa è un'altra storia. Quindi, se ci sono gli specialisti Vaadin là fuori, mi permetta di rivolgerle alcune domande:
Domanda 1:
- E 'OK per iniettare servizi (o DAO) direttamente ai componenti dell'interfaccia utente?
- Esempio: il componente responsabile della visualizzazione dei contatti nell'applicazione di posta elettronica (ContactWidget, basato sul VerticalLayout con collegamenti) deve visualizzare i contatti. Va bene iniettare contactRepository direttamente su questo elemento dell'interfaccia utente?
Domanda 2:
- di riferimento per l'applicazione principale viene passato alla quantità enorme di componentistica di interfaccia utente, in quanto molti componenti dell'interfaccia utente ha bisogno di accedere ad alcuni dati globali o richiamare i metodi globali sulla principale classe di applicazione
- Esempio: Il componente popup ha Pulsante che apre una nuova finestra, che dovrebbe essere figlio della finestra principale dell'applicazione. Pertanto il componente popup deve avere un riferimento all'applicazione principale.
Domanda 3:
- dipendenze tra i componenti dell'interfaccia utente può ottenere abbastanza selvaggio. Probabilmente non c'è molto da fare qui, ma a volte non sembra che questa finestra dipenda da questa lista che dipende da quel popup ... hai l'idea, sembra strettamente accoppiata a me
I'd piace imparare il più possibile sul buon design con Vaadin prima che il mio codice passi a Spaghetti, quindi qualsiasi suggerimento, esperienza e buone pratiche sarebbe apprezzato.
Grazie Dusty. Alla fine ho scelto MVP fatto a mano (molto leggero) e la propagazione dell'evento basata sull'evento di Guava. Sono abbastanza soddisfatto di questa decisione, anche se è sorprendente che non ci sia un solido framework MVP (ci sono dozena di beta/alpha/sperimentali) per Vaadin. – Xorty
Sì, beh, nonostante sia in giro da un po ', non ha abbastanza seguito per ottenere l'Engineer Love che l'altra tecnologia ottiene. La maggior parte delle persone che la utilizzano cercano la soluzione più semplice disponibile o, se sei come noi, non ha abbastanza tempo per documentare ciò che stiamo facendo. Costruito a mano è una scelta molto buona. I concetti sono la parte importante e la maggior parte dei framework MVC/MVP/MVVM sono lì solo per assicurarti di colorare le linee. Se hai disciplina, di solito non sono un requisito. –