MVC avec javaFX
j'ai du mal avec le concept MVC en utilisant javaFX. Je construis une application javaFX en utilisant des fichiers fxml.
chaque fichier fxml a un controller assigné, mais je ne pense pas que ce controller en soit un comme l'indique le pattern MVC. Je le vois comme une sorte de ViewController, qui contient des références à des objets fxml (boutons, vitres, etc.).).
mon problème est: Où est exactement la différence entre ce" ViewController "et le vrai"Controller". Ce que devrait faire l'objet quelles sont les choses? Où dois-je mettre par exemple actionListeners?
2 réponses
Réflexions sur MVC
MVC est un modèle assez mal défini qui est ouvert à des interprétations (souvent un peu vagues) de ce que représente chacune des choses dans MVC (en particulier le contrôleur). Il y a un grand discussion de l'architecture MVC en ce qui concerne les trousses de Martin Fowler.
Sur les Modèles de Conception et FXML
JavaFX core le traitement basé sur FXML est construit pour être plus d'une boîte à outils plutôt qu'un cadre de développement complet. L'idée étant que D'autres cadres pourraient être superposés sur JavaFX et FXML et les implémentations JavaFX/FXML sous-jacentes et les contrôleurs pour eux ne pousseraient aucune sorte d'ordre du jour ou de contraintes architecturales sur les cadres supérieurs.
en conséquence, il y a délibérément une analogie et un mappage lâches du traitement basé sur le noyau FXML et de ses contrôleurs vers une architecture MVC.
Voir JavaFX et MVP – un smörgåsbord de modèles de conception pour plus de discussion.
envisagez d'utiliser un cadre supérieur
vous pourriez bénéficier de l'adoption D'un cadre JavaFX "opinionné" tel que post-combustion.fx, qui utilise des controllers et FXML mais fournit un peu plus d'un cadre structuré rigide. Postcombustion.fx suit un Model View Presenter (MVP) model. Bien Que La Post-Combustion.fx offre plus de fonctionnalité et de structure que le simple noyau JavaFX+FXML, il le fait d'une manière minimale en ajoutant quelques classes supplémentaires et des API que vous devez apprendre à l'utiliser.
- Vague pour la messagerie et asynchrone en interne la gestion des événements
- Comportement d'ajouter le code commun à tout Composant (C|S|M)
- commande pour gérer les commandes de l'application (code réutilisable)
- Service pour gérer un certain long service dans la piscine de filetage
- Modèle de gérer le Modèle de votre INTERFACE utilisateur
- pour créer votre INTERFACE utilisateur
- Contrôleurs de traiter les événements de l'utilisateur
http://apps.jrebirth.org/jaf/3.0.0/JRebirthTour-3.0.0.jar
java -jar JRebirthTour-3.0.0.jar
http://apps.jrebirth.org/demo/8.5.0/JRebirthDemo-8.5.0.jar
java -jar JRebirthDemo-8.5.0.jar
ou parcourir les diapositives (légèrement dépassées): http://fr.slideshare.net/SbastienBordes/javafx-unleashed-with-jrebirth-application-framework