比方說,我們有一個類Order
(與用戶有關),它有財產state
。我想在同一時間內防止有多個確認的訂單,因此在我確認任何訂單之前,我必須檢查是否已經在其時間段內確認了一些訂單。將存儲庫注入到域對象或存儲庫應該注意業務邏輯?
我可以讓2層的方法(我知道):
OrderRepository
有一個功能changeState
哪個搜索改變之前,衝突的確認訂單,並允許它只有當什麼也沒發現 - 這裏的問題是庫知道改變狀態的邏輯。OrderRespository
注入Order
和Order
具有功能changeState
將使用該庫以檢查衝突 - 這裏的問題是域對象瞭解持久性。
什麼是正確的方法?
可能重複的[實體可以訪問存儲庫?](http://stackoverflow.com/questions/827670/is-it-ok-for-entities-to-access-repositories) – guillaume31
不,已在那裏,據我所知,第二種方法很糟糕,我仍然不知道如何正確處理它。 – kuba
然後你的Q標題並不反映你真正想要的東西 - 你應該改變它。 – guillaume31