2017-07-21 2 views
2

Certaines propriétés n'ont aucun sens pour le domaine mais sont essentielles pour le référentiel, par exemple la clé de partition.DDD - Représentation DTO d'entité sur les référentiels

Est-il acceptable d'avoir un DTO sur mon dépôt qui étendra l'implémentation de base de l'entité, en ajoutant les champs appropriés?

+2

Vous avez ce problème car vous ne séparez pas l'écriture du modèle lu; dans 'CQRS', vous n'aurez pas ce genre de problème. –

Répondre

2

C'est tout à fait correct. Tant que ce DTO reste dans le référentiel. Dans le PoEAA de Fowler:

le schéma du référentiel est décrite comme suit sert d'intermédiaire entre le domaine et des données de couches cartographiques en utilisant une interface de type collection pour accéder à des objets de domaine.

Tant que le référentiel fait correctement son travail (stockage et extraction des modèles de domaine), l'implémentation n'a pas d'importance. Assurez-vous que les détails d'implémentation du référentiel ne sont pas propagés dans le reste du projet. Si vous ajoutez un DTO à votre entité à l'intérieur du référentiel, assurez-vous de renvoyer l'entité sans le DTO ou d'autres champs non pertinents.

+0

Attention: "référentiel", tel que décrit dans le texte cité, n'est pas aligné avec "référentiel" comme décrit par Evans dans le chapitre six de Domain Driven Design. Evans utilise le référentiel entre l'application et le domaine, et non entre le domaine et le magasin persistant. – VoiceOfUnreason

+1

Je pense qu'Evans parle du même modèle de dépôt. Pouvez-vous expliquer ce que signifie "entre l'application et le domaine"? –