2017-09-23 4 views
0

Je sais dans DDD que la suppression d'une racine agrégée signifierait supprimer tout à la fois dans la limite Agrégat.Que sont les modèles lues dans Aggregates dans DDD et où les utiliser?

Mais je l'ai remarqué en lecture modèles (propriétés en lecture seule) sont utilisés dans les agrégats comme Lev Gorodinski a déclaré dans ce blog: http://gorodinski.com/blog/2012/04/25/read-models-as-a-tactical-pattern-in-domain-driven-design-ddd/

Mais comme ces modèles font partie du aggregate.So, comment nous traitons les en cas de suppression ou de mise à jour de notre agrégat?

Aussi, pouvons-nous les utiliser pour assurer les invariants/la cohérence des agrégats?

J'apprécierais un exemple à leur sujet et comment nous les utilisons dans les agrégats sans enfreindre les principes de DDD.

Répondre

1

Mais comme ces modèles font partie de l'agrégat.So, comment les traitons-nous dans cas de suppression ou de mise à jour de notre agrégat?

Ils ne font pas partie de l'agrégat (l'agrégat est le modèle d'écriture ). Dans le meilleur des cas, il s'agit d'une vue ou d'une projection d'un ou de plusieurs Agrégats.

Aussi, pouvons-nous les utiliser pour assurer les invariants/la cohérence des agrégats?

Non car ils ne font pas partie de l'agrégat. Vous pouvez les utiliser pour la validation mais dans une validation de pré-agrégat finalement cohérente et dans des cas très spéciaux (si vous avez besoin que cette validation soit forte, vous devriez revoir votre limite Agrégats car ils sont probablement faux)

P.S. Cet article de blog indique que ces modèles de lecture doivent être utilisés par le UI ou similaire et non par les agrégats.