【问题标题】:Anaemic data model ( ADM Vs RDM)贫血数据模型(ADM 与 RDM)
【发布时间】:2012-03-18 11:39:44
【问题描述】:

我正在尝试了解 ADM 和 RDM 之间的区别。

在我看来,adM 和 RDM 讨论都归结为您实际确定工作流程的位置(对象协作)。 RDM 将数据存储库对象和验证对象注入到业务对象(模型)的构造函数中。然后,业务对象方法定义使这些对象协作的工作流程。

ADM 将所有这些协作对象(模型、存储库、验证对象)传递到 viewModel/controller 等。viewmodel/controller 的方法定义对象之间的工作流协作。

这是正确的还是我遗漏了一些更基本的东西?

【问题讨论】:

    标签: domain-driven-design design-patterns anemic-domain-model


    【解决方案1】:

    我假设 RDM = 富域模型。 ADM 和 RDM(实际上是“真正的”域模型)之间的主要区别在于,RDM 将业务流程(开发应用程序的问题和解决方案)建模为自然有机的。

    领域模型对业务行为进行建模,而贫血模型基本上由保存数据的 POCO 组成,基本上模仿 db 表。然后,这些 POCO 几乎以程序方式使用,由服务验证和处理(在许多情况下只是静态方法)。

    简而言之,ADM 包含不包含(或很少)行为的对象,它们仅充当数据包,而 RDM 尽可能准确和自然地为业务流程建模。大多数情况下,贫血域是由以 db 为中心的方法的结果,在这种方法中,一切都以 db 为中心。

    控制器、视图和 DI 容器只是实现细节。

    【讨论】:

      猜你喜欢
      • 2018-12-14
      • 2017-10-29
      • 2010-12-20
      • 2020-01-29
      • 2014-06-12
      • 2010-11-04
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      相关资源
      最近更新 更多