【问题标题】:Domain Models - Designing the model领域模型 - 设计模型
【发布时间】:2013-06-14 20:16:26
【问题描述】:

关于领域驱动设计:

我有域模型、存储库和服务。我的问题是关于域的建模。

例如,我有一个包含 Employee、CountryId、State Id 的数据库表

  1. 我将如何为我的域对象建模,我将使用 id 还是使用文字值对其进行建模?
  2. 我在什么时候将 Id 值解析为文字值?
  3. 我应该使用服务来指向存储库的 CRUD 操作还是反模式?

我们将非常感谢您的帮助。

【问题讨论】:

  • 你看过 CQRS 吗?您可能会发现它有助于回答其中一些问题。
  • 你的模型应该是什么?跟踪哪些员工在特定国家的哪个州工作?或者他们出生在哪里?或者他们更喜欢在哪里工作?或者他们过去在哪里工作?赶上我的漂移?!

标签: domain-driven-design repository-pattern domain-model


【解决方案1】:

我将如何为我的域对象建模,我会使用 id 还是使用文字值对其进行建模?

id 是域的一部分还是仅由您的关系数据库使用?在后一种情况下,您不会使用 id 建模。因此,严格来说,您也不允许将 id 存储在您的实体中,但这需要您创建数据传输对象,这可能会以几乎所有方式反映您的实体。因此,我个人并不那么严格地对待 DDD。

什么时候我会将 Id 值解析为文字值?

您的基础设施层应该处理这个问题。

我应该使用服务来指向存储库的 CRUD 操作还是反模式?

服务可以调用存储库。但是,如果有两种方法(看似)在代码库中实现相同的效果,那将是一种反模式。您可以将您的服务暴露给更高的层(并从该层隐藏存储库)并使用这些服务中的存储库。在这两者之间可能会有一些额外的逻辑。

【讨论】:

    猜你喜欢
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多