【发布时间】:2010-08-20 16:35:38
【问题描述】:
用 1;2;3 标记了我的聚合根。看起来很不错——几乎像葡萄。
我不喜欢的是带有红色箭头的实体。
让我们想象一下:
- AR #1 是公司
- AR #2 是办公室
- AR #3 是员工
- 用红色箭头标记的实体名为
Country- 公司制定了从哪些国家/地区雇用员工的规则(在雇用时,
company.Countries.Contains(employee.Country)必须为真)
- 公司制定了从哪些国家/地区雇用员工的规则(在雇用时,
我以某种方式看到了域中这个相当不重要的部分(也许在这个示例中听起来不像),并且我想避免将 Country 提升为聚合根。
Glossary 关于聚合根 说:
对内部成员的临时引用只能在单个操作中使用。
那么 - 引入诸如“EmployeeCountry”之类的内容、删除对公司 Country 的引用并检查 Employee country 在招聘操作中是否与任何公司所在国家/地区相匹配听起来合理吗?
还有其他想法吗?
我怎样才能让我的葡萄看起来像他们应该的样子?
【问题讨论】:
标签: domain-driven-design modeling aggregateroot