2012-01-08 13 views
15

Para un proyecto, he estado trabajando en una aplicación de escritorio JavaFX 2.0 (una interfaz de usuario de keytool). Por la forma en que funciona JavaFx2.0 (en cualquier caso, en mi proyecto), el manejo de eventos UI tiene lugar en las clases de UI de JavaFX 2.0 (por ejemplo: eventos onclicked() u oyentes de cambio de propiedad).¿Cómo organizar los controladores/presentadores en una gran aplicación JavaFx 2.0?

Ahora uso una clase estática con un método: getController(), que todas las clases de UI usan para acceder al controlador de la aplicación (de alguna manera me pareció complicado pasar el controlador a las más de 50 clases de UI)

¡Sin embargo, el problema es que ese controlador se está haciendo muy grande! Tiene demasiados métodos (todos los métodos de lógica de negocios a los que deben acceder mis clases de IU). Aunque solo transfiere las llamadas de métodos a mi modelo/servicio, todavía hay muchas excepciones que deben detectarse en el nivel del controlador para manejarlas en la interfaz de usuario (mostrar mensajes de error, etc.).

¿Alguien sabe de una manera limpia de hacer que todo este patrón MVC/MVP funcione mejor para mi aplicación sin que las clases UI/Controller/Model dependan directamente entre sí? ¿Tal vez un controlador diferente para cada caso de uso? Pero entonces, ¿cómo lo haría para que la clase correcta de UI obtenga el Controlador correcto sin saberlo directamente? Tal vez usando una interfaz?

+0

No está claro lo que hace su controlador. – toto2

+0

¿Tal vez dividir su UI en partes que cada uno tiene su propio controlador? – Tower

Respuesta

3

Realmente no conozco Java FX, por lo que debería tomar mi respuesta con un grano de sal. Miré un poco los tutoriales de Java FX, pero todos parecen ser pequeños ejemplos sin arquitectura de ningún tipo ... MVC u otro.

Quizás no se debe esforzar demasiado para tener un patrón MVC limpio. Me parece que cada elemento UI es en sí mismo una unidad MVC, p. una etiqueta contiene texto (el modelo), su representación gráfica (la vista) y maneja eventos (el controlador).

Puede que su vida sea más dolorosa al tratar de tener un controlador global por separado.

Sin embargo, puede mantener un modelo separado, que sería necesario, por ejemplo, si está mostrando el contenido de una base de datos (el modelo). Sin embargo, si está haciendo algo bastante simple, simplemente usar el estado de la interfaz de usuario como su modelo sería suficiente; mantener los datos (modelo) por separado en el programa simplemente le haría perder tiempo sincronizando los datos en las UI y los datos en el modelo separado. La duplicación de datos es mala y se debe evitar tanto como sea posible.

2

propongo poner a prueba el Marco JRebirth

Se proporcionan un patrón simple pero potente que le ayudará a estructurar su aplicación.

Este marco es joven y se mejorará según los comentarios recibidos. No dude en enviar algunos.

http://www.jrebirth.org/doc/Overview.html

comprobar el código de página de la información y la fuente proporcionado para aprender más.

demostración en vivo también están disponibles

+0

este enlace está roto – James

+0

enlace restaurado (fue temporal abajo) –

+0

Enlace roto de nuevo. – Derek

0

he puesto un tutorial básico sobre my website de hace un tiempo sobre la forma patrón MVC puede ser implementado usando Java y JavaFX 2. La clase de modelo siempre se desacopla y no debe saber nada sobre el controlador y el espectador.Si se trata de un proyecto grande, recomendaría utilizar módulos donde tenga su modelo, visor y controlador allí. Un módulo podría ser el portal de administración o Google visor de mapas, etc.

http://www.pergande.net/blog/article/post/Javafx+2.0+MVC/id/1

+2

El enlace está roto ahora – Andrew

Cuestiones relacionadas