在领域驱动设计 (DDD) 中,实体始终具有自己的唯一身份。
在我阅读 DDD 时,我看到了似乎在实体和聚合根之间混合了“唯一身份”概念的陈述和示例。根据示例,它们可以暗示:
- 我只需要以下接口之一。
或者
- 我两个都需要。
我想知道就“Eric Evans type DDD”而言,哪种方法是“正确的”。
例如,假设您的实体实现了此接口并在调用此方法时返回一个 GUID:
public interface IEntity
{
object IdThatIsUniqueForThisEntityObject { get; }
}
您是否也需要下面的那个?
public interface IAggregateRoot
{
object IdThatIsUniqueForThisAggregateRootObject { get; }
}
Aggregate Root 是否需要实现与上述类似的接口,以便它可以表示其自己的唯一 ID (IdThatIsUniqueForThisAggregateRootObject),该 ID 与其根实体的 ID (IdThatIsUniqueForThisEntityObject) 不同且不同?
或者聚合根应该只使用根实体的 (IdThatIsUniqueForThisEntityObject) 来表示聚合根的唯一 ID?