领域驱动设计问题

glj*_*var 4 oop dns design-patterns domain-driven-design

我想请求一个推荐的解决方案:我们有一份比赛清单.每个竞赛都定义了参与者必须支付的费用我们有参与者我必须知道竞争中的参与者是否支付了费用.我正在考虑2个解决方案,问题是它必须是领域驱动设计中最合适的解决方案.首先是在竞赛中创建一个Dictionary而不是List,字典的类型为<Participator,bool>.secont可能会创建一个不同的类,它有2个字段,一个参与者和feePaid.在竞争中,我会得到一个新类的对象列表.

谢谢

Ray*_*yek 6

听起来像是典型的多对多关系.我会使用Entry关联类对其进行建模,如下所示:

class Participator {
}
class Competition {
    Currency fee
}
class Entry {
    Competition competition
    Participator participator
    Boolean feePaid
}
Run Code Online (Sandbox Code Playgroud)


tva*_*son 5

我处理这个问题的方法是参加比赛,参赛者和注册.参与者将注册竞赛,创建注册.注册将包括竞赛ID,参与者ID,指示是否支付费用的标志,以及任何其他注册特定数据(如注册日期).这将在数​​据库中建模为"连接表"(带有附加数据).在应用程序方面,参与者将有一个注册列表,每个注册将有一个相关的参与者和一个竞赛.同样,每个比赛都有一份注册清单.