在我的設計中,我有從數據庫獲取實體的Repository類(它是如何做的並不重要)。但爲了將實體保存回數據庫,是否有意義使存儲庫也這樣做?或者它更有意義創建另一個類,(如的UnitOfWork),並賦予它的責任是使其接受實體保存的東西,並通過調用它save()
告訴它繼續前進,做它的魔力?存儲庫應該是加載和保存實體嗎?
1
A
回答
5
在DDD中,存儲庫絕對是其中的所有所有持久性相關的東西預計將駐留。
如果你已經保存到和封裝在一個以上的類加載數據庫,數據庫相關的代碼將被分散在太多的地方在你的代碼庫 - 從而使維護顯著困難。而且,這個代碼的後來讀者可能很有可能一見鍾情,因爲這樣的設計不符合大多數開發人員期望找到的準標準。
當然,你可以有不同的讀/寫器,輔助類,如果這是在您的項目爲宜。但是,從業務層看到的,持久性的唯一網關應該是倉庫...
HTH!
托馬斯
1
我會給庫用於封裝載各方面的全面責任和保存。這可以確保棘手的問題,例如管理讀者和寫者之間的爭用,有一個地方需要管理。
儲存庫很可能會使用你的UnitOfWork類,並可能需要暴露BeginUow及提交方法。
1
福勒says該存儲庫API應該模仿集合:
域和數據映射層之間的存儲庫介導,作用像一個內存域對象集合。
相關問題
- 1. 庫和媒體文件應該存儲在存儲庫中嗎?
- 2. DDD。我應該修改存儲庫中的實體嗎?
- 3. 實體類應該有自己的存儲庫嗎?
- 4. DDD存儲庫和實體
- 5. 我應該將相關模型保存在存儲庫中嗎?
- 6. 實體對象是否應該由存儲庫公開?
- 7. 我應該實施一個存儲庫和xml服務嗎?
- 8. 實體框架:存儲實體而不保存到數據庫
- 9. 將實體保存到數據庫 - 我的Save方法應該返回保存的實體嗎?
- 10. 類應該能夠通過XML保存和加載自己嗎?
- 11. UI應該引用存儲庫嗎?
- 12. 根據存儲庫模式,存儲庫應該提供查詢還是實際的實體?
- 13. 我應該存儲openid claims_id加密嗎?
- 14. 實體框架加載/保存數據
- 15. 我應該爲每個實體定義一個存儲庫
- 16. Symfony表單query_buider和實體存儲庫
- 17. 實體框架和存儲庫模式
- 18. 組與存儲庫和實體框架
- 19. 實體框架和存儲庫模式
- 20. 如何分離存儲庫和實體
- 21. 存儲庫模式和實體框架
- 22. 存儲庫模式和實體框架
- 23. 保存數據庫實體
- 24. 你可以加載存儲過程中的nhibernate實體嗎?
- 25. 保存doctrine2實體緩存,以加快頁面加載
- 26. 保存存儲庫中的實體不起作用SPRING
- 27. 數據存儲實體應該總是有父項
- 28. 應該將mvnw文件添加到存儲庫中嗎?
- 29. Symfony安全加載錯誤的實體存儲庫
- 30. 使用EntityFramework在存儲庫中加載相關實體