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

MVC Discussion :

[MVC] Pb de dépendance entre couches de mon archi


Sujet :

MVC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 73
    Points : 57
    Points
    57
    Par défaut [MVC] Pb de dépendance entre couches de mon archi
    Je souhaite modéliser une application type MVC avec les couches suivantes :
    - présentation
    - coordination
    - service (utilise domaine et donnees)
    - domaine
    - données (utilise domaine)
    - stockage (ma base de données)

    Imaginons que j'ai une dans la classe domaine une classe User et dans la classe donnees une classe UserData correspondante gérant la persitance de la classe User.
    Si je veux créer une méthode CheckPassword() ma classe User, à priori je suis obligé de passer par la classe UserData qui vérifie le contenu de la base de données.
    Mon pb est que, dans ce cas, la couche domaine utilise la couche donnees or normalement pour que mon modèle soit correct la couche domaine ne doit dépendre d'aucune autre couche.

    Donc je ne vois pas comment faire ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Points : 122
    Points
    122
    Par défaut Re: [Modélisation] Pb de dépendance entre couches de mon arc
    Citation Envoyé par korrigan
    - données (utilise domaine)
    Bonjour,

    N'est-ce pas plutôt le domaine qui utilise la couche d'accès aux données ?

    Citation Envoyé par korrigan
    Si je veux créer une méthode CheckPassword() ma classe User, à priori je suis obligé de passer par la classe UserData qui vérifie le contenu de la base de données.
    Ton mot de passe n'est pas un atribut de user ? Tu peux vérifier sans passer par la persistence.
    Sinon, il faut que ta vérification se fasse au niveau des services.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 73
    Points : 57
    Points
    57
    Par défaut Re: [Modélisation] Pb de dépendance entre couches de mon arc
    Citation Envoyé par MangeurVasqué
    Citation Envoyé par korrigan
    - données (utilise domaine)
    Bonjour,

    N'est-ce pas plutôt le domaine qui utilise la couche d'accès aux données ?
    Ben non à priori (d'après ce que j'ai pu lire ici et là) l'appel à la couche de donnees permet de te rendre des objets du domaine avec le contenu récupéré dans la BD.

    Par exemple pour charger un user (en C#) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    User myUser = new User();
    UserData myUserData = new UserData();
    string userID = "aaa";
    
    myUser = myUserData(userID);

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Points : 122
    Points
    122
    Par défaut
    D'accord, ton UserData est un "data transfer object". Il ne fait pas partie à proprement parler de la couche de persistence.
    Si tu tiens à découpler ton User de UserData, il faut passer par un "service" qui initialise User à partir de UserData (ou l'inverse) au moyen des accesseurs.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 73
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par MangeurVasqué
    D'accord, ton UserData est un "data transfer object". Il ne fait pas partie à proprement parler de la couche de persistence.
    Si tu tiens à découpler ton User de UserData, il faut passer par un "service" qui initialise User à partir de UserData (ou l'inverse) au moyen des accesseurs.
    OK, donc je n'ai pas de moyen d'écrire ma méthode CheckPassword() dans User en la découplant de UserData ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 70
    Points : 49
    Points
    49
    Par défaut Re: [Modélisation] Pb de dépendance entre couches de mon arc
    Citation Envoyé par korrigan
    Citation Envoyé par MangeurVasqué
    Citation Envoyé par korrigan
    - données (utilise domaine)
    Bonjour,

    N'est-ce pas plutôt le domaine qui utilise la couche d'accès aux données ?
    Ben non à priori (d'après ce que j'ai pu lire ici et là) l'appel à la couche de donnees permet de te rendre des objets du domaine avec le contenu récupéré dans la BD.

    Par exemple pour charger un user (en C#) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    User myUser = new User();
    UserData myUserData = new UserData();
    string userID = "aaa";
    
    myUser = myUserData(userID);
    MangeurVasqué a raison les couches de ton applis sont comme les couches de ton modèle OSI. La couche inférieure rend des services à la couche supérieur. Donc ta couche d'accès aux données rend des services à ta couche métier. Il faut donc que ta couche métier s'appuye sur elle.

    Cependant pour que cette dernière (le couche métier) soit le plus possible indépendant de toute couche d'accès aux données travaille avec des interfaces en java ( ou un héritage en C++ ).
    Tu définis les services attendus par ta couche métier dans une interface qui aura une ou plusieurs implémentation. Chaque couhe d'accès aux données qui voudra rendre des services à ta couche métier devra alors implémenter l'interface que tu as défini

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dépendance entre objets
    Par bobunny dans le forum Oracle
    Réponses: 6
    Dernier message: 24/03/2011, 15h22
  2. Réponses: 3
    Dernier message: 17/06/2009, 08h34
  3. Réponses: 2
    Dernier message: 24/11/2007, 19h46
  4. Réponses: 5
    Dernier message: 22/12/2005, 17h31
  5. Relation de dépendance entre résultats : une idée farfelue ?
    Par mdef dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 18/07/2005, 02h04

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