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

JDBC Java Discussion :

[DAO] Une petite question sur le modèle de conception...


Sujet :

JDBC Java

  1. #21
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 291
    Points : 1 059
    Points
    1 059
    Par défaut
    Citation Envoyé par dlemoing
    PS : DTO est souvent considérer comme un anti-pattern !!! A utiliser avec précaution.
    Pourrais tu développer ce point ? En effet, le DTO est cité dans le catalogue de patterns J2EE (mais peut être ont ils changé leur point de vue dessus)
    http://beuss.developpez.com
    Tutoriels PostgreSQL, Assembleur, Eclipse, Java

  2. #22
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Prenons ce qui est dit dans le livre Core J2EE Patterns (voir ici aussi).

    Context
    Application clients need to exchange data with enterprise beans.

    Forces
    * You want clients to access components in other tiers to retrieve and update data.
    * You want to reduce remote requests across the network.
    * You want to avoid network performance degradation caused by chattier applications that have high network traffic.

    Consequences
    * Reduces network traffic
    * Simplifies remote object and remote interface
    * Transfers more data in fewer remote calls
    * Reduces code duplication
    * Introduces stale transfer objects
    * Increases complexity due to synchronization and version control
    Forces : 2/3 des arguments concernent la distribution des applications
    Consequences : 1/2 concernent encore la distribution des applications

    Les DTO doivent être utilisés dans un but : transférer des données entre des couches distribuées (peu d'applications web ont véritablement besoin de distributions).
    Pourquoi utiliser une hierarchie d'objets en parrallèle de tes objets métiers ? Pourquoi avoir des objets qui contiennent juste des données et qui n'ont pas de comportement ? (voir ici). Certains patterns de ce livre sont extremement intéressants (principalement concernant la partie présentation), je suis moins d'accord en ce qui concerne la partie métier qui propose une solution trop "EJB-centrique" à mon gout et des patterns destinés à contourner les problèmes introduits par leur solution. Lis bien la description du problème et tu verras que je ne raconte pas de betises (compte le nb de références aux EJB dans la partie "Problem").

    L'utilisation d'un pattern se fait en fonction du problème à resoudre dans un contexte donné. C'est pour ca qu'il faut toujours bien lire la description du pattern (contexte, problème, forces, conséquences).
    Ce pattern est donc à utiliser dans le cadre d'applications distribuées et/ou utilisant des EJB (Entity surtout).

  3. #23
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427

  4. #24
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 291
    Points : 1 059
    Points
    1 059
    Par défaut
    Merci pour tes précisions, effectivement j'avais bien compris que les DTO étaient faits pour éviter les appels de méthodes distants et non pas pour constituer des classes utilisées uniquement pour renvoyer des données.
    Il s'agit donc d'un pattern si l'on l'appelant et l'appelés passent par le réseau pour leurs échanges mais d'un anti-pattern dans les autres cas, c'est bien ça ?
    http://beuss.developpez.com
    Tutoriels PostgreSQL, Assembleur, Eclipse, Java

  5. #25
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Effectivement, c'est bien ca (en tout cas c'est ce que je pense et j'espère t'avoir convaincu), sauf que, si ton modèle peut être sérialisé, il n'y a toujours pas de raison pour ton DTO...
    J'ajouterais juste un bémol à ce que j'ai dit précedemment : on peut éventuellement utiliser un DTO s'il y a une grosse différence entre le Domain Model et le Presentation Model (voir ce lien). Toutefois, cela doit se limiter à quelques écrans et ne doit avoir qu'un impact minime sur le design de l'application (dans tous les cas, le Domain Model ignore tout des DTO).

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Une petite question sur le fichier htaccess
    Par namstou3 dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2007, 11h01
  2. une petite question sur les combobox
    Par kerkennah dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/01/2007, 05h59
  3. une petite question sur les pointeurs
    Par guy777 dans le forum C
    Réponses: 4
    Dernier message: 06/10/2006, 17h44
  4. Réponses: 6
    Dernier message: 07/05/2006, 21h42
  5. Encore une petite question sur les sockets...
    Par damien99 dans le forum MFC
    Réponses: 4
    Dernier message: 15/02/2006, 14h22

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