2014-10-31 56 views
1

這可能是關於個人的偏好比任何事情都多,但我一直試圖圍繞使用存儲庫和工作單元模式,但我看到了非常不同的用途,並希望知道哪個更好?爲什麼。存儲庫和工作單元設計模式

使用1: 在此使用時,儲備庫投入工作

使用2單元: 在此使用,工作單元被放入倉庫

回答

1

這是... 。 複雜。首先從我對what a Repository is的簡單解釋開始。接下來,UoW概念被過度使用和濫用。考慮到存儲庫,使用Aggregates的DDD方法意味着存儲庫封裝UoW,因爲聚合根中的所有內容必須作爲一個整體持久化。在數據庫級別,UoW僅僅意味着使用事務,如果它們使用相同的事務,即使對於多個存儲庫也是如此。

但是,大多數時候這是錯誤的設計,因爲它通常只適用於非分佈式應用程序,並且需要一些符合ACID的存儲。雖然它可能是你的情況,但是你使用Repository模式的事實意味着你希望你的應用程序是持久性無知的,這意味着你的應用程序不應該知道UoW,這是一種可用於持久化的模式(通過ORM或直接通過db事務)。

所以,我想說'正確的'答案是:根據具體需要,版本庫可能使用UoW實現。如果您使用的是ORM,則自動使用UoW。

相關問題