7

Si vous suivez le modèle de référentiel, ils ... disent de créer un référentiel pour chaque entité d'agrégat racine.un référentiel pour chaque entité d'agrégat racine dans la conception pilotée par domaine

Cela signifie que quand j'ai ce modèle:

client

a des commandes commande a des produits produit est le fournisseur

etc ...

Cela voudrait dire que j'ai 4 dépôts qui sont mis en UN repo. le client est l'entité racine.

Dois-je mal comprendre quelque chose?

Répondre

8

Il est correct que vous ayez un référentiel par agrégat. Ce qui peut varier, cependant, c'est l'ensemble des agrégats dans votre domaine. Le modèle client/commande/produit/fournisseur peut être décomposé en agrégats de plusieurs manières. La décomposition en agrégats dépend de divers facteurs et dépend du domaine en question. Un agrégat doit être une frontière de cohérence, ce qui signifie qu'il définit quel ensemble d'entités doit être cohérent dans le contexte des comportements associés à ces entités. Compte tenu de cette contrainte, les références d'objet entre les agrégats devraient être éliminées et remplacées par des références d'identité.

Dans votre modèle, il se peut que le client, la commande, le produit et le fournisseur soient des agrégats distincts et requièrent donc des référentiels distincts. Même si le client est une racine agrégée (partie de l'agrégat client) et que la commande dépend du client, cela ne signifie pas que le référentiel client doit contenir le référentiel de commandes. Le référentiel d'ordres doit être complètement séparé, car l'ordre est la racine de l'agrégat d'ordres.

Jetez un oeil à Effective Aggregate Design by Vaughn Vernon pour le traitement en profondeur de la conception de granulats.

+0

Pourriez-vous corriger ceci: "... puisque l'ordre est une racine agrégée de l'agrégat de commande" – Elisabeth

+0

J'ai légèrement modifié le libellé, mais je ne suis pas sûr ce que tu voulais corriger? – eulerfx

+0

hm Je suppose que je ne comprends pas pourquoi l'ordre est la racine de l'agrégat d'ordre. Pouvez-vous me dire où l'ordre ne serait pas la racine de l'agrégat d'ordres? Merci pour le lien que j'ai mis en signet. – Elisabeth

0

Vous avez 4 entités liées comme vous l'avez souligné ci-dessus et le référentiel implémente le contexte de transaction pour toutes ces entités associées.

+0

la question concerne DDD et non pas les entités et les modèles de données –

Questions connexes