如果你有一個領域對象,並且你想要做一些有用的和中心的領域對象的責任,如確保它是有效的,你有時需要訪問相關對象的狀態以執行此驗證。如何避免貧血的領域層,並仍然有豐富的驗證和業務規則
如何避免域對象需要調用到存儲庫或數據訪問層?由於性能的原因,即使使用延遲加載,您也無法始終採用集合關係,而且您經常希望在域對象中執行查詢。您可以將存儲庫實現依賴注入到域中,但不是真正純粹且複雜的測試。
我總是放鬆一些事情,並允許使用DI從域訪問存儲庫。我沒有看到如何在複雜的應用程序中創建「純」域圖層的清晰示例,該應用程序並不貧乏,並且服務/應用程序層做了所有的咕嚕聲並且弄亂了應該成爲域對象內部的東西。
注入到實體是保持域層解耦的主要思想。在實體中注入存儲庫是最佳選擇。你的專業服務是什麼意思?僅當命令的上下文跨越多個實體時才使用域服務。不應該有專門的實體服務。 「 - (2x減)」 – Tudor 2012-10-04 23:08:55