【问题标题】:Domain Driven Design question领域驱动设计问题
【发布时间】:2009-01-10 14:21:53
【问题描述】:

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

谢谢

【问题讨论】:

  • 也许发布您的解决方案尝试?
  • 尚未编码。我只是在寻找概念。最好的方法是什么。我可以将其重新表述为:连接参与者的最佳设计是什么,以及特定参与者是否为特定比赛支付费用的知识。

标签: design-patterns oop dns domain-driven-design


【解决方案1】:

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

class Participator {
}
class Competition {
    Currency fee
}
class Entry {
    Competition competition
    Participator participator
    Boolean feePaid
}

【讨论】:

    【解决方案2】:

    我处理这个问题的方式是举办比赛、参与者和注册。参与者将注册比赛,创建注册。注册将包含竞赛 ID、参赛者 ID、指示是否已支付费用的标志以及任何其他注册特定数据(如注册日期)。这将在数​​据库中建模为“连接表”(带有附加数据)。在应用程序方面,参与者将有一个注册列表,每个注册都会有一个关联的参与者和一个比赛。同样,每个比赛都会有一个注册列表。

    【讨论】:

    • 我不确定在域驱动开发中这样做是否正确。与在 DDD 中一样,您可以处理对象,但拥有一个只有 ID 和一个更多信息的对象并不好。我知道这将是数据库中的标准解决方案。
    • 我不同意,我的模型通常有一个我需要保存在数据库中的任何对象的 ID,因为在通常的 IRepository 工作之后我需要一些方法来映射事物 - DDD 更多地与尝试说话有关与业务统一的语言而不是试图排除 ID 属性恕我直言
    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 2011-10-08
    • 1970-01-01
    • 2018-07-03
    • 2010-12-01
    • 2011-04-26
    相关资源
    最近更新 更多