Si une entité devient la racine d'un agrégat, la racine d'agrégation utilise-t-elle l'identifiant existant de l'entité racine ou l'AR crée-t-il son propre identifiant?

StackOverflow https://stackoverflow.com/questions/6091278

Question

Dans la conception dirigée sur le domaine (DDD), une entité a toujours sa propre identité unique.

Dans ma lecture sur DDD, j'ai vu des déclarations et des exemples qui semblent mélanger les concepts d'identité unique entre entités et racines agrégées. Selon l'exemple, ils peuvent impliquer que:

  • Je n'ai besoin que d'une des interfaces ci-dessous.

ou

  • J'ai besoin des deux.

J'aimerais savoir quelle approche est "correcte" en ce qui concerne "Eric Evans type DDD" est concerné.

Par exemple, disons que vos entités implémentent cette interface et renvoient un GUID lorsque cette méthode est appelée:

public interface IEntity
{
   object IdThatIsUniqueForThisEntityObject { get; }
}

Avez-vous besoin de celui ci-dessous aussi ou pas?

public interface IAggregateRoot
{
   object IdThatIsUniqueForThisAggregateRootObject { get; }
}

La racine d'agrégation doit-elle mettre en œuvre une interface comme celle ci-dessus afin qu'elle puisse représenter son identifiant unique ID unique (IDThatisUniqueForthisagregsheroTOOtObject) distinct et différent de l'ID d'entité racine (IDThatisUniqueForthisentityObject)? < / p>

ou si la racine d'agrégation utilise simplement l'entité racine (IDThatisUniqueforthisentityObject) pour représenter l'ID unique de la racine globale?

Était-ce utile?

La solution

Vous n'avez besoin que de l'entité.Il n'y a pas d'identité racine globale supplémentaire créée.Une racine agrégée est un agrégat utilisé pour contrôler l'accès et organiser des objets comme une seule unité de travail de base de données.L'agrégat ne confère aucune sorte d'identité "nouvelle" ou supplémentaire pour un objet.

Une entité a toujours une identité d'entité unique et qui devrait être suffisante.Par définition, une opération qui récupère une entité qui est une racine globale récupère également l'agrégat en le faisant.Il n'y a pas de concept d'entité qui n'est parfois que l'entité autonome et d'autres fois la racine d'agrégat.Donc, il n'est pas nécessaire de concept d'une "identité racine globale" du tout.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top