0

我想了解ADM和RDM之間的區別。貧血症數據模型(ADM Vs RDM)

我看到它的方式是adM和RDM的討論都歸結爲您實際確定工作流程(對象協作)的位置。 RDM將數據存儲庫對象和驗證對象注入到業務對象(模型)的構造函數中。業務對象方法然後定義使這些對象進行協作的工作流程。

的ADM把所有這些協作對象(模型庫,驗證對象到視圖模型/控制器等視圖模型的方法/控制器定義對象之間的工作流程協同合作。

這是正確的還是我失去了一些更基本的東西?

回答

3

我假設RDM =富域模型ADM和RDM(實際上是「真正的」域模型)之間的主要區別在於RDM對業務流程(問題和解決方案該應用程序是開發的),因爲它可以是天然有機的。

領域模型模擬企業的行爲,而貧血模型基本上由持有數據的POCO組成,基本上模仿數據庫表。然後這些POCO幾乎以程序的方式使用,由服務驗證和處理(在許多情況下,這些只是靜態方法)。

簡而言之,ADM包含不包含(或很少)行爲的對象,它們只作爲數據包行爲,而RDM對業務流程的建模儘可能準確和自然。大多數情況下,貧血領域是以數據庫爲中心的方法的結果,所有事情都是以數據庫爲中心開始的。

控制器,視圖和DI容器只是實現細節。