Question

Dans la couche de domaine ou d'une couche d'accès aux données?

Était-ce utile?

La solution

La principale motivation pour DTO est de présenter une interface adaptée à une autre couche (typiquement, la couche de présentation). Par exemple, un écran de saisie de données peut avoir besoin des bits de données à partir d'un objet utilisateur, en plus de quelques bits d'un ordre, etc. Dans ce cas, le domaine de DTO devrait se produire à la couche la couche de présentation invoque, à savoir, en général une couche « de service ».

Il existe des bibliothèques comme Dozer là-bas qui automatisent le travail de grognement de conversion entre les modèles de domaine et DTO.

La clé prendre est loin DTO sont destinés à abstraire les données (non logique métier) sur les plus riches objets du modèle de domaine - par conséquent, DTO doivent être convertis au domaine des objets le plus tôt possible (à couche de service) de sorte que le reste de vos couches d'application peuvent travailler avec des objets de domaine les plus riches (données et la logique métier)

Autres conseils

Je ne suis pas un grand fan de DTO, mais je dis ne le faites pas dans la couche de données. Les offres de la couche de données avec des objets du modèle et leur persistance. Pourquoi le coupler avec d'autres couches en apportant DTO en elle? Je les associer ailleurs, probablement entre le service et les niveaux ui, juste au moment où ils franchissent la frontière entre l'endroit où ils sont créés et où ils sont utilisés.

La mise en contexte MVC, si vous avez à la fois la couche de contrôleurs et services que vous devriez le mettre dans le contrôleur. Cela ferait un DTO plus proche de la couche de vue et permettre à la couche de service à jouer avec des objets de domaine, en évitant les confusion possible avec d'autres modèles.

Le DTO lui-même est en fait le modèle MVC (voir ici: https://stackoverflow.com/a/1058186 ).

Voici un tutoriel recommandé que mashes le contrôleur, couche de service et les concepts DTO ensemble (en Java utilisant le framework Spring, mais le concept est clair pour d'autres plates-formes aussi bien): https: //www.baeldung. com / entité de va-et-de-dto-pour-un-java-ressort à l'application

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top