En DDD vous ne devriez jamais laisser vos entités entrer dans un état non valide. Cela dit, comment gérez-vous la validation d'une contrainte unique?DDD - Validation de contrainte unique
La création d'une entité n'est pas un vrai problème. Mais disons que vous avez une entité qui doit avoir un nom unique et il y a un millier d'instances de ce type d'entité - elles ne sont pas en mémoire mais stockées dans une base de données. Maintenant, disons que vous voulez renommer une instance.
Vous ne pouvez pas simplement utiliser un setter ... l'objet pourrait entrer dans un état invalide - vous devez valider contre la base de données.
Comment gérez-vous ce scénario dans un environnement web?
Nous vous remercions de votre réponse. Je suis plutôt d'accord avec ce que vous dites mais j'aimerais entendre ce que les puristes pensent d'une «contrainte d'unicité peut être réduite à une exception de persistance» - n'étant pas un état invalide ... Et pour le View Model, j'utilise presque toujours mais il y a un moment où vous devrez mettre à jour votre "vrai" modèle avec les données du Modèle de Vue et vous serez toujours confronté au même problème. – W3Max
DDD n'est pas vraiment une religion; ce n'est pas vraiment de la pureté, c'est de la clarté. Dans la mesure où il s'agit de pureté, vous trouverez que ma pensée a tendance à s'aligner assez proche de DDD canonique la plupart du temps. Cependant, si vous souhaitez résoudre le problème de l'unicité en dehors de la couche de persistance, vous pouvez essayer de modifier le modèle de spécification en fonction de vos besoins. – JasonTrue