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

Architecture Discussion :

DTO : Mais combien en faut-il et combien d'assembleurs ?


Sujet :

Architecture

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 57
    Points
    57
    Par défaut DTO : Mais combien en faut-il et combien d'assembleurs ?
    Bonjour,

    Une petite question sur les DTO. Je me rend compte que j'ai souvent besoin, selon les cas, de plusieurs DTOs pour une même ressource, et biensûr un assembleur pour chacun d'entre eux. Ca peut devenir un peu lourd.

    Je prend un exemple simple. Des Albums photos. Je vais pouvoir créer des albums, afficher une liste d'albums, et afficher le détail d'un album (avec photos). C'est un cas typique.

    Et bien moi j'ai tendance à faire 3 DTOs différents, un pour la création de l'album, un pour la liste, et un pour le détail, puisque dans chacun des trois cas je ne vais pas forcément avoir les mêmes infos à l'intérieur.

    Dans mon service AlbumService, je vais donc injecter un Assembler différent pour chaque DTO (assez lourd).

    Exemples (je simplifie à mort la syntaxe volontairement) :

    - Création d'album :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class AlbumFormDTO : DataTransferObject
    {
        public Int artistId;
        public String title;
        public String description;
    }
    - Liste d'albums :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class AlbumDTO : DataTransfertObject
    {
        public Int artistId;
        public String artistName;
        public String title;
        public DateTime date;
        public List<PhotoDTO> mainPhotos;
    }
    - Détail d'un album :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class AlbumDetailDTO : DataTransfertObject
    {
        public Int artistId;
        public String artistName;
        public String title;
        public DateTime date;
        public String description;
        public List<PhotoDTO> photos;
    }
    Donc 3 assembleurs différents !

    Ça vous semble aberrant de procéder de cette manière ?


    Merci,
    A+ benjamin.

  2. #2
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 123
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par Delprog Voir le message
    Bonjour,

    Une petite question sur les DTO. Je me rend compte que j'ai souvent besoin, selon les cas, de plusieurs DTOs pour une même ressource, et biensûr un assembleur pour chacun d'entre eux. Ca peut devenir un peu lourd.

    Je prend un exemple simple. Des Albums photos. Je vais pouvoir créer des albums, afficher une liste d'albums, et afficher le détail d'un album (avec photos). C'est un cas typique.

    Et bien moi j'ai tendance à faire 3 DTOs différents, un pour la création de l'album, un pour la liste, et un pour le détail, puisque dans chacun des trois cas je ne vais pas forcément avoir les mêmes infos à l'intérieur.

    Dans mon service AlbumService, je vais donc injecter un Assembler différent pour chaque DTO (assez lourd).

    Exemples (je simplifie à mort la syntaxe volontairement) :

    - Création d'album :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class AlbumFormDTO : DataTransferObject
    {
        public Int artistId;
        public String title;
        public String description;
    }
    - Liste d'albums :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class AlbumDTO : DataTransfertObject
    {
        public Int artistId;
        public String artistName;
        public String title;
        public DateTime date;
        public List<PhotoDTO> mainPhotos;
    }
    - Détail d'un album :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class AlbumDetailDTO : DataTransfertObject
    {
        public Int artistId;
        public String artistName;
        public String title;
        public DateTime date;
        public String description;
        public List<PhotoDTO> photos;
    }
    Donc 3 assembleurs différents !

    Ça vous semble aberrant de procéder de cette manière ?


    Merci,
    A+ benjamin.
    La différence entre les 2 derniers DTO Est une String ? Ca ne justifie pas d'en créer un.
    Perso j'ai un seul DTO par classe, un seul assembler, mais plusieurs méthodes d'assemblage en fonction des champs que je veux renseigner. En partant du principe qu'envoyer une String de plus ou de moins ne coulera pas mon réseau, ce qui me semble raisonnable...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 57
    Points
    57
    Par défaut
    Salut,

    Oui en fait entre temps je me suis dis : "T'es con ou quoi ? Dans un cas tu set pas certaines propriétés et dans d'autres oui, c'est tout, ton objet ne sera pas plus lourd".

    A partir de là tout roule. Merci de m'avoir confirmé

    Question subsidiaire quand même, une liste de DTO dans un DTO ça vous semble logique ? Où ça ne devrait pas exister ?


    Merci,
    A+ benjamin.

Discussions similaires

  1. Réponses: 45
    Dernier message: 23/07/2015, 20h00
  2. Réponses: 2
    Dernier message: 25/06/2007, 11h07
  3. Réponses: 6
    Dernier message: 29/06/2006, 15h10
  4. Combien de TIBDatabase faut-il ?
    Par qi130 dans le forum Bases de données
    Réponses: 4
    Dernier message: 16/09/2004, 22h07

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