Je suis en train d'écrire une application Swing, et en plus de my previous question, j'ai décidé d'utiliser le modèle Model-View-Presenter pour séparer l'interface utilisateur de la logique métier.Appliquer le modèle MVP à JDialogs
Lorsque mon application démarre, il exécute le code suivant:
Model model = new BasicModel();
Presenter presenter = new Presenter(model);
View view = new SwingView(presenter);
presenter.setView(view);
presenter.init();
qui crée l'interface utilisateur. Les événements sont générés par le View
et délégués au Presenter
. Le Presenter
manipule ensuite le Model
et met à jour le View
en conséquence.
Afin de gérer certains événements, j'ai besoin d'obtenir plus d'informations de l'utilisateur. Dans le cas de ces événements, je crois qu'il est approprié pour la vue Swing de générer une nouvelle fenêtre JDialog
.
Une ligne de pensée me fait sentir que cela pourrait être le code approprié dans le Orignal Presenter
:
public void handlePreferences() {
Preferences prefs = view.getPreferences();
model.setPreferences(prefs);
}
C'est, le contenu de chaque JDialog
devraient représenter un objet distinct qui doit être récupéré à partir du View
et mis à jour dans le Model
. Cependant, cela laisse la question: est-ce que je crée un nouveau Model
pour représenter l'objet Preferences
et un nouveau Presenter
pour la gestion des événements dans ce JDialog
?
Il me semble que la création d'une nouvelle Presenter
et Model
interne aux forces View
originales me faire beaucoup de travail qui serait plus difficile au port si je voulais changer l'interface utilisateur d'utiliser JSF, par exemple.
N'hésitez pas à ajouter des commentaires pour clarification.
"Le JDialog est considéré comme une simple extension de la vue, c'est un membre de la vue comme le ferait un JButton" - cela dit tout. Je vous remercie. –
Cheers, je peux obtenir plutôt verbeux :) – Paxic