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

Python Discussion :

Organisation de code suivant pattern MVC


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur mécanique
    Inscrit en
    Octobre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur mécanique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 46
    Par défaut Organisation de code suivant pattern MVC
    Bonjour à tous,

    Je tente de développer une application permettant de piloter un moteur pas à pas relier à un driver. Cette application est basée sur une interface graphique Tkinter qui permet de définir les paramètres du mouvement désiré et de lancer ce mouvement.
    Le problème, c'est que je veux structurer mon code suivant une architecture MVC sur laquelle j'ai lu beaucoup d'article mais je que j'ai du mal à mettre en application.
    Je souhaiterais avoir donc des remarques de la part de personnes plus expérimentées que moi sur le sujet pour m'aider à progresser.

    Ce que je pense faire :
    1) Créer une classe Model dans laquelle je crée les instances de Moteur, Driver, Mouvement qui correspondent aux données de mon application.
    2) Créer une classe View dans laquelle je définis l'interface graphique (Fenêtre simple avec des Label, TextBox, Button) et où je crée des évènement lors des actions réalisées par l'utilisateur (Clique sur un bouton, modification d'une valeur...)
    3) Créer une classe Controler qui gère les évènements reçus de la Vue et qui redirige vers les actions à effectuer

    Je me pose quelques questions sur des problèmes qui doivent être très simple.
    Sur l'interface graphique apparaît deux champs (nombreDePas et angle) qui sont liés. Si je modifie le nombre de pas, l'angle doit changer et inversement sachant que nombreDePas et angle sont des attributs de la classe d'un objet Mouvement.
    1) Dans quelle classe dois-je intégrer les fonctions permettant de vérifier que le nombre de pas entré par l'utilisateur est bien un entier : Dans la classe View ou Controller? Je pense que c'est dans la classe Controller.
    2) Dans quelle classe dois-je intégrer les fonctions permettant de convertir le nombreDePas en angle et inversement : Dans la classe Model ou Controller? Je pense que c'est dans la classe Mouvement (donc Model).

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par jim53 Voir le message
    Le problème, c'est que je veux structurer mon code suivant une architecture MVC sur laquelle j'ai lu beaucoup d'article mais je que j'ai du mal à mettre en application.
    C'est une architecture qui permet de répartir rôles et responsabilités entre différents composants. Et lorsqu'on dit "composant", pas besoin de fabriquer des classes nommées: "View, Model et Controller"... On crée ses classes et on leur donnera la responsabilité de... et si on veut marquer ces différents rôle comme avec un "stabilo", on pourra les regrouper dans des modules ou en faire des sous classes de View, Model,...

    Citation Envoyé par jim53 Voir le message
    Je me pose quelques questions sur des problèmes qui doivent être très simple.
    Sur l'interface graphique apparaît deux champs (nombreDePas et angle) qui sont liés. Si je modifie le nombre de pas, l'angle doit changer et inversement sachant que nombreDePas et angle sont des attributs de la classe d'un objet Mouvement.

    1) Dans quelle classe dois-je intégrer les fonctions permettant de vérifier que le nombre de pas entré par l'utilisateur est bien un entier : Dans la classe View ou Controller? Je pense que c'est dans la classe Controller.
    2) Dans quelle classe dois-je intégrer les fonctions permettant de convertir le nombreDePas en angle et inversement : Dans la classe Model ou Controller? Je pense que c'est dans la classe Mouvement (donc Model).
    Si on suit le modèle à la lettre, cette vérification est à faire côté Controller. Mais comme le widget Entry permet déjà de faire cette validation, autant le faire "au plus près" et expédier au Controller une commande lorsque l'entier aura été saisi correctement.

    Vous avez une dépendance entre "nombreDePas" et "angle". La question est de savoir qui à la responsabilité d’assurer la cohérence de cette dépendance. Pour çà, il faut regarder ce qu'il se passe (ou doit se passer) lorsque l'utilisateur modifie l'un ou l'autre. Est-ce que le Model doit être notifié immédiatement, si oui faut-il transmettre les deux valeurs "cohérentes" (auquel cas, c'est plutôt côté View ou Controller que çà se passe) ou transmettre l'un ou l'autre et attendre que le Model "ajuste" l'autre valeur (dans ce cas, côté View, on a des observables (ou des variables Tk)).

    voir le tuto. de B.Wicht sur le sujet.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Design pattern MVC et mon code actuel
    Par kyride dans le forum Langage
    Réponses: 7
    Dernier message: 26/03/2015, 09h51
  2. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  3. [MVC] Organisation de code.
    Par Rakken dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 13/11/2008, 11h18
  4. Persistance et organisation du code
    Par K-Kaï dans le forum Hibernate
    Réponses: 16
    Dernier message: 06/06/2007, 17h01
  5. Réponses: 4
    Dernier message: 19/09/2005, 17h56

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