我有一個關於實現DDD和存儲庫模式的問題。 我應該修改存儲庫中的實體嗎?DDD。我應該修改存儲庫中的實體嗎?
比方說,我有一個訂單,並希望將該訂單標記爲完成。 正如我所見,我有兩種選擇。
-
1.
var order _orderRepository.GetById(1);
order.Finish();
_orderRepository.Update(order);
...其中的變化是堅持在更新調用數據庫。
2.
var order _orderRepository.GetById(1);
var finishedOrder = _orderRepository.Finish(order);
...其中的變化是堅持在完成調用數據庫。
使用其中一種方法是否有優勢?什麼是DDD這樣做的方式?
第一個是正確的方法。 – Jehof
@Jehof我也這麼認爲,但爲什麼我應該更喜歡第一個呢? –
原因我認爲不是存儲庫負責將訂單標記爲已完成。它直到一個命令(當使用CQRS)或一個DomainService來做到這一點 – Jehof