Actualmente estoy trabajando en tres aplicaciones de Vaadin y realmente siento que extraño algo. Solía trabajar con Spring MVC anteriormente, donde la arquitectura es clara y está desacoplada, se inyectan servicios a los controladores y no se empareja el controlador con la IU, etc.Vaadin: Patrones de diseño
Ahora en Vaadin esa es una historia diferente. Así que si hay algún especialistas vaadin por ahí, déjame hacerte algunas preguntas:
Pregunta 1:
- ¿Está bien para inyectar servicios (o DAO) directamente a los componentes de interfaz de usuario?
- Ejemplo: El componente responsable de mostrar los contactos en la aplicación de correo electrónico (ContactWidget, basado en VerticalLayout with Links) necesita mostrar los contactos. ¿Está bien inyectar contactRepository directamente a este elemento de UI?
Pregunta 2: se está pasando
- referencia a la aplicación principal a la enorme cantidad de componenets de interfaz de usuario, ya que muchos de los componentes de interfaz de usuario necesita acceder a algunos datos globales o invocar métodos globales sobre principal clase de aplicación
- Ejemplo: El componente emergente tiene un botón que abre una nueva ventana, que debe ser hija de la ventana principal de la aplicación. Por lo tanto, el componente emergente debe tener referencia a la aplicación principal.
Pregunta 3:
- Las dependencias entre los componentes de interfaz de usuario puede ser bastante salvaje. Probablemente no hay mucho que hacer aquí, pero a veces no parece que esta ventana depende de esta lista que depende de esa ventana emergente ... se entiende, se ve muy bien acoplado a mí
I'd me gustaría aprender todo lo posible sobre un buen diseño con Vaadin antes de que mi código cambie a Spaghetti, por lo que cualquier sugerencia, experiencia y mejores prácticas serían apreciadas.
Gracias polvoriento. Finalmente elegí el MVP (muy ligero) hecho a mano y la propagación de eventos en base al evento de Guava Bus. Estoy bastante contento con esta decisión, aunque es sorprendente que no haya un marco de MVP sólido (aunque hay docenas de betas/alphas/experimentales) para Vaadin. – Xorty
Sí, bueno, a pesar de estar por aquí durante mucho tiempo, no tiene suficientes seguidores como para obtener el Amor Ingeniero que obtiene la otra tecnología. La mayoría de las personas que lo usan buscan la solución más simple disponible, o si usted es como nosotros, no tiene suficiente tiempo para documentar lo que estamos haciendo. Construido a mano es una muy buena opción. Los conceptos son la parte importante, y la mayoría de los marcos MVC/MVP/MVVM están ahí para asegurarse de que está coloreando las líneas. Si tiene disciplina, por lo general no son un requisito. –