设计领域模型问题

时间:2014-02-20 04:06:23

标签: domain-driven-design

首先感谢您对此问题的意见。我在领域驱动设计方面相当新,并且为解决某些问题而奋斗(我认为它们非常基本,我肯定会遗漏一些东西)。

让我先描述一下我的域名。我正在尝试为一所典型的学校建模,这所学校可以有教室,每个教室可以有多个科/组,每个教室组都有学生。 用户主要是学校管理员和老师。学校管理员可以创建课堂,教师和学生,而教师只能创建小组并将学生分配到小组。 学校有全球认同感,但课堂没有。课堂是学校实体的一部分,具有当地特色。课堂小组仅在课堂内是独一无二的。

学校绝对是一个聚合根,里面有教室聚合,负责创建,删除,更新教室。

  1. 我们是否应该为课堂和课堂小组创建不同的聚合根(我认为不正确,因为他们在域中没有全局身份)。
  2. 我们是否为每个人创建了单独的存储库?
  3. 我们应该在服务级别处理课堂,课堂小组的创建/更新吗?
  4. 我们需要缓存数据,事件采购似乎是保持状态同步的好主意。你觉得这有什么问题吗?
  5. 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  1. 我认为你应该创建一个Classroom聚合根。您可能会在某些报告中列出教室,对吗?
  2. 仅适用于聚合根。根集合的根目录由父集合根存储库提取。
  3. 否。如果您使用Entity Framework,那么在Class对象List中添加Classroom组就足够了。 EF应该照顾其余部分。请注意删除!
  4. 如果您正在谈论http://martinfowler.com/eaaDev/EventSourcing.html,这不仅仅是一种跟踪变化的方法吗?