我试图了解 ADM 和 RDM 之间的区别。
我看到它的方式是 adM 和 RDM 讨论都归结为您实际确定工作流程的位置(对象协作)。RDM 将数据存储库对象和验证对象注入到业务对象(模型)的构造函数中。然后,业务对象方法定义使这些对象协作的工作流。
ADM 将所有这些协作对象(模型、存储库、验证对象)传递到 viewModel/controller 等。viewmodel/controller 的方法定义对象之间的工作流协作。
这是正确的还是我错过了更基本的东西?
我试图了解 ADM 和 RDM 之间的区别。
我看到它的方式是 adM 和 RDM 讨论都归结为您实际确定工作流程的位置(对象协作)。RDM 将数据存储库对象和验证对象注入到业务对象(模型)的构造函数中。然后,业务对象方法定义使这些对象协作的工作流。
ADM 将所有这些协作对象(模型、存储库、验证对象)传递到 viewModel/controller 等。viewmodel/controller 的方法定义对象之间的工作流协作。
这是正确的还是我错过了更基本的东西?
我假设 RDM = 富域模型。ADM 和 RDM(实际上是“真正的”域模型)之间的主要区别在于,RDM 将业务流程(开发应用程序的问题和解决方案)建模为自然有机的。
领域模型对业务行为进行建模,而贫血模型基本上由保存数据的 POCO 组成,基本上模仿数据库表。然后,这些 POCO 几乎以程序方式使用,由服务验证和处理(在许多情况下只是静态方法)。
简而言之,ADM 包含不包含(或很少)行为的对象,它们仅充当数据包,而 RDM 尽可能准确和自然地对业务流程进行建模。大多数情况下,贫血域是以 db 为中心的方法的结果,在这种方法中,一切都围绕一个 db 开始并旋转。
控制器、视图和 DI 容器只是实现细节。