IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

[MVC] Gestion complexe car vue conséquente


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Points : 86
    Points
    86
    Par défaut [MVC] Gestion complexe car vue conséquente
    Bonjour,

    Souhaitant travailler avec le modèle MVC pour le développement de mon application, j'ai browsé le web dans le but de trouver différentes informations concernant le dit pattern. J'en ai donc compris le fonctionnement mais je n'arrive pas à l'appliquer sur mon projet.

    Sachant que tout les exemples que j'ai pu trouvé reposent sur de très petites application qui se chargent par exemple de mettre à jour une String

    Alors voici le contexte :

    J'ai une vue complexe qui contient une multitudes de champs, champs qui devront pouvoir être mis à jour mais qui pourront aussi servir de fournisseur d'informations.

    Toutes ces données, sont ensuite stockées en base de données.

    Et mon problème est tel que je ne comprend pas comment le contrôleur va se charger de contrôler l'intégrité de Toutes les données ( une 30 aines ), données qui seront ensuite envoyer en base grace au model.

    Sachant que mon interface (ma vue) est centralisée sous une classe qui étend de JFrame, il faudrait alors que je passe à mon contrôleur, ma JFrame en paramètre ?

    Voilà, c'est un peu touffu, et c'est surement pour ça que je m'y perd un peu.

    Merci d'avance,

    link_915

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Points : 86
    Points
    86
    Par défaut
    J'ajoute quelques informations :

    En y réfléchissant, l'utilisation de plusieurs vues devrait être une bonne solution, chaque vue représentant un panel qui doit être ou non mis à jour.

    Or je ne trouve aucun exemple mettant en oeuvre plusieurs vues, c'est évoqué très rapidement sans aucune explication dans la plupart des tutos.

    Il faudrait donc partir sur un AbstractModel et un AbstractControler ?
    Et pour chaque vue implémenter une classe spécifique ?

    Merci de votre aide,

    link_915

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ton programme gère une seule table ou plusieurs d'un point de vue fonctionnel ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    D'abord merci de prendre un peu de temps pour m'aider

    Pour répondre à ta question, mon programme gère plusieurs tables, et j'ai utilisé, pour la gestion de la DB un pattern DAO.

    Et je suis vraiment coincé, cela fait 48h que je cherche sans trouver de piste ...

    link_915

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je suis un peu rouillé en développement swing mais si tu es parti sur un pattern dao, ça ne devrait déjà bien simplifier.
    Ton contrôleur est limité au listener de bouton quasiment, le traitement "métier" étant confié à ta dao ou si la logique est plus complexe à un objet intermédiaire (façade).
    vu que le pattern utilise un objet typé "entity" ou dto, tu auras juste à "wrapper" les champs d'ihm avec cet objet (dans les 2 sens, un pour le chargement, l'autre pour le transfert à la persistance).

    Pour résumé, je créerais une façade pour ton application qui centralisera l'aspect métier en réfléchissant bien aux différentes méthodes nécessaires.
    Cette façade interfacerait les dao pour l'acquisition/écriture des données issues des différentes table.
    Ensuite, tu peux utiliser cette façade avec un client lourd swing ou une application web, c'est pareil.
    Les adaptations liées au type de client et de champ source/cible et donc très spécifiques, je les ferais dans le contrôleur, c'est son rôle.

    Si c'est pas clair, n'hésite pas... c'est bientôt l'apéro, mon cerveau ne pense qu'à ça
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Points : 86
    Points
    86
    Par défaut
    Encore merci de m'aider pour résoudre ce problème,

    Donc en fait oui, pour simplifier, on va dire que j'ai un bouton pour sauvegarder et un bouton pour afficher.

    J'avais précédemment implémenté ces deux procédés en utilisant les DAO dans le s listeners des boutons respectifs, mais cela ne correspond pas à un pattern MVC .

    Alors intellectuellement, j'ai à peu près compris ce que tu as essayé de m'expliquer, qui résume en gros l'utilité du pattern MVC.

    C'est plus au niveau de l'implémentation que se trouve mon problème. En effet, je comprend que le modèle va contenir ma logique métier et que le controleur va servir d'interface entre ma vue et mon modele.

    Mais je ne vois pas du tout comment implémenter ça.

    Par exemple, pour le bouton de chargement des données, ma vue va appeler mon contrôleur, et c'est dans le controleur que je devrais récupérer les différentes valeurs de tout mes champs ? ( couplage fort à swing ).

    Et de cette méthode du contrôleur va devoir "recracher" 40 à 50 String (couplage faible) vers mon modèle pour qu'ensuite le modèle notifie la vue qu'elle doit être mise à jour ?

    J'espère que je ne raconte pas n'importequoi

    Et la peut être que je me trompe, mais ça a l'air plutot "moche" de procéder ainsi, je n'aurais pas vraiment de moyen de reconnaitre mes différentes String ?

    J'espère m'être assez bien exprimé car c'est déjà relativement compliqué à assimiler.

    link_915

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Points : 86
    Points
    86
    Par défaut
    Voici une petite illustration pour mieux représenter le problème :

    Capture de mon interface, chaque tabbedPane contient encore d'autres champs modifiables.


  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Le couplage est limité au maximum. Il y a bien un moment où il faut adapter à l'utilisation finale, à l'ihm, on ne peut pas trop bypasser cette étape. D'autant que des adaptations de présentation des données (liées à la Locale par exemple) seront peut-être nécessaires.
    Et il n'y a que le client final qui sait comment s'appelle la zone liée à un champ de db dans l'ihm...

    Donc, non, ce n'est pas moche.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [PHP 5.3] [MVC] gestion de la vue / rendu via classe et toString
    Par laville dans le forum Langage
    Réponses: 14
    Dernier message: 10/11/2011, 13h21
  2. [MVC] gestion des droits/erreurs : vue ou contrôleur ?
    Par Invité2 dans le forum Langage
    Réponses: 8
    Dernier message: 06/12/2008, 16h34
  3. Réponses: 6
    Dernier message: 09/04/2008, 09h57
  4. Réponses: 9
    Dernier message: 20/03/2007, 19h56
  5. [POO] MVC : Gestion des "pages"
    Par Dinan dans le forum Langage
    Réponses: 4
    Dernier message: 18/02/2007, 19h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo