我刚刚开始了一个项目,以了解有关DDD的更多信息。 这可能是一个愚蠢的问题,但只是想了解有关DDD的更多信息。
例如,如果我在这里有2个域模型,产品和用户,都是聚合根。在Product中,我有其他状态/属性和2个状态称为“CreatedBy”和“CreatedDate”,让我们说域专家告诉我“CreatedBy和Date”都是业务域的一部分。 createdby必须与User模型相关。我在考虑3种选择,不确定它们中哪一种是正确的。
public int CreatedBy ...
)public User CreatedBy ...
)创建一个值对象调用MetaData,如下所示
class MetaData
{
public int CreatedBy ...
public string CreatorName ...
public string CreatorStatus ...
public DateTime CreatedDate ...
}
创建/保存产品时
我不确定哪种方法是正确的,希望我对DDD的理解是正确的,直到现在......
答案 0 :(得分:1)
Product
和User
具有域关系即:"产品(始终?)由用户创建" 。通过将产品引用为User,最简单的方法是使Product具有UserId,可以实现。
聚合不应该重叠,它们是自治的,这就是为什么您只使用UserId而不是整个用户的原因。如果你需要组合不同的聚合,那么这就是一个潜伏的第三个,但你还没有看到它。