J'ai deux agrégats quand Si plus de contexte est requis pour répondre à la question s'il vous plaît faites le moi savoir . p> p> blog code> et
post code> avec une relation unique (
blog code> est associé à plusieurs
post < / code>). Selon la conception dirigée sur le domaine des meilleures pratiques, je suis incertain si
blog code> doit contenir une collection de code> POST CODE> Références:
POST code> a également une référence d'identifiant indirecte via
blogide code>: p>
3 Réponses :
DDD ne vous indique pas comment implémenter votre application, mais vous donne simplement des directives. Tenir une liste des "messages" dans une classe "blog" et une référence inverse logique est définitivement ok si vous ne pouvez pas faire autre chose, mais la chose la plus importante à comprendre est la manière dont un "utilisateur de blog" sera en mesure d'agir sur des postes. p>
Ainsi, n'hésitez pas à implémenter le modèle de domaine de votre manière préférée, mais le seul moyen d'ajouter des messages, Supprimer Post, etc., les commandes sont envoyées à l'entité "Blog", de sorte que ce soit le blog lui-même. vous accorder que les messages sont câblés correctement en fonction de votre implémentation p>
Dans le livre de Vaughn Vernon, implémentation de la conception axée sur le domaine, vous pouvez trouver un chapitre entier sur la définition de vos agrégats et des règles de pouce que vous pouvez appliquer. P>
L'un d'eux est d'essayer de garder vos agrégats aussi petits que possible. Dans votre cas, je choisirais d'un point de vue de conception, ce blog n'est probablement pas défini par son poste, de sorte que vous n'en avez pas besoin d'eux à l'intérieur. Un agrégat devrait être responsable de toutes ses règles invariantes (règles logiques commerciales) et non plus. P>
Mon conseil est de simplement le garder aussi simple que possible et de me concentrer toujours sur des principes solides. P>
bonne chance! p> nom code> et vous voulez simplement le modifier: lorsque vous récupérerez cet objet de la base de données, s'il contient tous les messages, vous les récupérerez également, en faisant un Insister inutile pour le cas d'utilisation Vous travaillez et cela diminuera la performance. P>
une règle pour les agrégats est que vous devez faire référence à un agrégat par son identifiant racine global, donc dans Blog agrégé, vous devez conserver une liste des identifiants de poste. P>