【发布时间】:2016-03-06 15:43:37
【问题描述】:
我刚刚启动了一个项目来了解有关 DDD 的更多信息。 这可能是一个愚蠢的问题,但只是想了解有关 DDD 的更多信息。
例如,如果我在这里有 2 个域模型,产品和用户,都是聚合根。在产品中,我有其他状态/属性和 2 个称为“CreatedBy”和“CreatedDate”的状态,假设领域专家告诉我“CreatedBy 和 Date”都是业务领域的一部分。 createdby 必须与 User 模型相关。我在考虑 3 个选项,不知道哪个是正确的。
- CreatedBy 仅包含用户 ID。 (
public int CreatedBy ...) - CreatedBy 是一个用户对象。 (
public User CreatedBy ...) -
如下创建一个值对象调用 MetaData
class MetaData { public int CreatedBy ... public string CreatorName ... public string CreatorStatus ... public DateTime CreatedDate ... }
创建/保存产品时,
- 对于选项 1,我只需要获取当前用户的 UserID 并设置 到我的产品模型
- 对于选项 2,我将获取当前用户的 UserID 并调用 User 存储库以获取此用户并设置为我的产品模型
- 对于选项 3,我将获取当前用户的 UserID,构造
MetaData 对象并设置为我的产品模型。
我不确定哪种方法是正确的,希望我对 DDD 的理解到现在都是正确的......
【问题讨论】: