大家好!
我正在用 c# 学习领域驱动设计,我对在哪里对查询进行一些验证有一些疑问。我希望有人能帮助我澄清我的疑问。
部分域名缩写:
在足球世界杯中,众所周知,每个参赛国家的联合会都展示了自己的国家队,公司有兴趣与这些球队进行CRUD操作。
小组赛赛程报名要求: 在这个小组赛阶段,他们将与小组内的所有人进行比赛(每场 3 场比赛)。
8个小组,每组4支队伍。 在每个小组中,他们在小组的 3 天(日期)内与所有人进行比赛。
众所周知,每场比赛有 2 支球队在特定的日期和时间进行比赛。
在输入比赛信息时,必须检查每支球队在这个阶段只打了 3 场比赛,总是与不同的对手,在注册参加每场比赛的球队时,必须核实一支球队没有与对手比赛自己和对手属于同一组。并且对手属于同一组。
我的班级身份证明
国家队。 小组赛。 匹配
在这里我认为我的根聚合器将是组,它将能够添加选择和管理匹配。
所以,这里我有问题:
在这种情况下,我是否必须为匹配项添加一个存储库,或者我将如何在高级别处理它们?
“本阶段每支球队只打 3 场比赛”类型的验证? 只有 3 场比赛,总是与不同的对手”,“在注册每场比赛的球队时,必须检查球队是否与自己比赛并且对手属于同一组”
这里的小组赛阶段类应该负责有像“bool haveAlreadyPlayed(NationalTeam n1, NationalTeam n2)”这样的方法,它负责查询这些球队是否已经参加了他们自己的比赛列表并返回一个布尔值?或者例如另一个名为“IsMember(NationalTeam n) 的方法,它负责检查该团队是否在他们的团队列表中以注册他们的比赛”?还是将这些查询留给存储库层更好?
在向组中添加匹配项或 nationalTeam 的情况下,它会来自组类中的 AddNatonalTeam() / AddMatch() 方法吗?在添加方法中,您将调用您自己类的这些验证方法?
致谢
文章有点长,希望大家了解一下来龙去脉,非常感谢所有帮我解惑的人!
你能给我的任何建议、提示或意见都会非常有帮助,因为我才刚刚开始接触 DDD 世界。非常感谢!