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 :
1 2 3 4 5 6 7
|
class AlbumFormDTO : DataTransferObject
{
public Int artistId;
public String title;
public String description;
} |
- Liste d'albums :
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 :
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.
Partager