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.
Pourriez-vous corriger ceci: "... puisque l'ordre est une racine agrégée de l'agrégat de commande" – Elisabeth
J'ai légèrement modifié le libellé, mais je ne suis pas sûr ce que tu voulais corriger? – eulerfx
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