java model-view-controller javafx javafx-2

MVC con javaFX



model-view-controller javafx-2 (2)

Estoy luchando con el concepto de MVC usando javaFX. Estoy construyendo una aplicación javaFX usando archivos fxml.

Cada archivo fxml tiene un controlador asignado, pero no creo que este controlador sea uno como lo indica el patrón MVC. Lo veo como un tipo de ViewController, que contiene referencias a objetos fxml (botones, paneles, etc.).

Mi problema es: ¿Dónde está exactamente la diferencia entre este "ViewController" y el "Controlador" real? ¿Qué objeto debería hacer qué cosas? ¿Dónde puedo configurar, por ejemplo, actionListeners?


Pensamientos en MVC

MVC es un patrón bastante definido que está abierto a interpretaciones (a menudo algo vagas) de lo que significa cada una de las cosas en MVC (especialmente el controlador). Hay una gran discusión de la arquitectura MVC con respecto a los kits de herramientas GUI de Martin Fowler.

En patrones de diseño y FXML

El procesamiento basado en JavaFX core FXML está diseñado para ser más un juego de herramientas en lugar de un marco de desarrollo completo. La idea es que otros frameworks podrían ser superpuestos a JavaFX y FXML y las implementaciones JavaFX / FXML subyacentes y los controladores para ellos no impulsarían ningún tipo de agenda o restricciones arquitectónicas en los marcos de nivel superior.

Como resultado, existe una analogía deliberadamente flexible y un mapeo del procesamiento básico basado en FXML y sus controladores a una arquitectura MVC.

Consulte JavaFX y MVP: un resumen de los patrones de diseño para una mayor discusión.

Considere usar un marco de nivel superior

Puede beneficiarse de la adopción de un framework JavaFX "obstinado" como afterburner.fx , que utiliza controladores y FXML, pero proporciona un poco más de un marco estructurado rígido. Afterburner.fx sigue un modelo Model Presenter Presenter (MVP) . Aunque Afterburner.fx ofrece más funcionalidad y estructura que JavaFX + FXML de núcleo simple, lo hace de manera mínima al agregar algunas clases y API adicionales que necesita aprender a usar.


Puede probar JRebirth con su patrón personalizado: wB-CS-Mvc

Este es un patrón de MVC de 2 niveles, primero MVC (nivel de aplicación) es CSM y el segundo es Mvc (nivel de ui).

  • Wave para mensajería y manejo de eventos internos asíncronos
  • Comportamiento para agregar código común a cualquier Componente (C | S | M)
  • Comando para administrar los comandos de la aplicación (código reutilizable)
  • Servicio para manejar un servicio largo en el grupo de subprocesos
  • Modelo para administrar el Modelo de su UI
  • Ver para crear su UI
  • Controladores para manejar eventos de usuario

Puede ejecutar la aplicación JRebirth Tour para obtener más información (se requiere Java 8):

http://apps.jrebirth.org/jaf/3.0.0/JRebirthTour-3.0.0.jar

java -jar JRebirthTour-3.0.0.jar

También puede ejecutar la aplicación de demostración:

http://apps.jrebirth.org/demo/8.5.0/JRebirthDemo-8.5.0.jar

java -jar JRebirthDemo-8.5.0.jar

o explore las diapositivas (ligeramente obsoleta): http://fr.slideshare.net/SbastienBordes/javafx-unleashed-with-jrebirth-application-framework