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

Persistance des données Java Discussion :

confusion entre entiy bean , dto et dao


Sujet :

Persistance des données Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Par défaut confusion entre entiy bean , dto et dao
    salut,
    j'ai une ambiguité à comprendre les differnces entre les 3 termes:entiy bean, dto et dao
    ce que je connait est que :
    • les entiy bean presentent les objets mappées de la datasource(de mes table par exemple)

    • la couche dao permet d'interroger la base de donnée et centraliser les requtes

    est ce que je suis correct et q'elle est alors l'interet de la couche dto

  2. #2
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Le dto est un objet de transfert entre couches. Sa vocation est de restreindre les données à ce qui est réellement utile, et d'introduire un découplage entre les couches.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Le dto est un objet de transfert entre couches. Sa vocation est de restreindre les données à ce qui est réellement utile, et d'introduire un découplage entre les couches.
    merci Tommy mais pourquoi ne pas transporter les beans entités au lieu d'introduire les DTO

  4. #4
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Pour des raisons :

    • Philosophique, en découplant les couches par l'introduction d'interfaces qui portent sur des données propres, et non issues du modèle sous-jacent.
    • Sécuritaire, en circonscrivant le périmètre des données manipulées par la couche supérieure,
    • D'efficacité, si le modèle de données contient des objets agrégés (ce qui est souvent le cas), il est plus performant de travailler sur une vue que sur la structure originelle.

  5. #5
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Pour des raisons :

    • Philosophique, en découplant les couches par l'introduction d'interfaces qui portent sur des données propres, et non issues du modèle sous-jacent.
    • Sécuritaire, en circonscrivant le périmètre des données manipulées par la couche supérieure,
    • D'efficacité, si le modèle de données contient des objets agrégés (ce qui est souvent le cas), il est plus performant de travailler sur une vue que sur la structure originelle.
    merci Tommy ca devient un peu plus claire, une autre chose, est ce qu'il y a un pattern à appliquer pour la couche dto

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Par défaut
    Attention au piège du super découplage qui donne lieu à des erreurs de design monumentales (impliquant en plus des pb de performances catastrophiques).

    Je n'évoque pas l'utilisation des objets persistants (ceux que tu appelles des entity beans) par la couche de présentation: plusieurs écoles s'affrontent ici et souvent de façon totalement stérile.

    Par contre si d'aventure vous avez encore un dao (enore un débat sympa), il est impératif qu'ils retournent vos objets persistant à la couche de service (c'est elle qui démarque les transaction et donc souvent la durée de vie de votre entitymanager en jpa ou de votre session en hibernate). si vos daoretourne des dto qui ne sont pas vos objets persistent, alors vous ne bénéficiez plus de dirty checking (qui est quand meme un des points essentiels des ORM). vous devez alors synchroniser manuellement vos objets (via session.update par exemple ou em.merge)

    Moi perso, je suis favorable à la disparition des dao dans 90% des cas. La plus value en terme de simplicité est largement supérieure à tous les arguments qui sont favorables au maintient des daos...

    Hop hop.... bon débat..

Discussions similaires

  1. confusion entre maitre/esclave et client/serveur
    Par firaponte dans le forum Développement
    Réponses: 4
    Dernier message: 03/01/2008, 12h11
  2. Confusions entre les one/many-to-many/one
    Par TigrouMeow dans le forum Hibernate
    Réponses: 1
    Dernier message: 01/01/2007, 21h44
  3. Réponses: 4
    Dernier message: 11/10/2006, 21h36
  4. [JSF] Communication entre les beans
    Par Arnaud Giuliani dans le forum JSF
    Réponses: 1
    Dernier message: 01/06/2006, 23h07
  5. [EJBQL] [CMP] Relation entre deux beans
    Par salome dans le forum Java EE
    Réponses: 1
    Dernier message: 11/07/2005, 23h50

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