如果我的領域模型不應該知道/關心存儲庫,那麼像.UpdateOrder(...)
這樣的一些行爲如何封裝一個CRUD-Update與存儲庫的接口?通過域名服務?通過域封裝的持久性,還是通過Repository持久化?
好的,那麼我的Repository有一個有效的CRUD更新,與我的.UpdateOrder(...)
一起使用。沒關係。但我不希望有人在存儲庫上使用Update方法,我希望他們通過實體上的行爲(使用UpdateOrder()代替)。我更喜歡像我的領域模型滿足不變式的方式 - 通過它的設計(私有屬性等) - 我的知識庫而不是公開了一種替代方法來「更新」/堅持實體。
這是一個簡單的訪問修飾符問題,由我在Repo public中沒有Update方法解決。或者有更好的答案?請幫我DDD忍者。
UpdateOrder做了什麼,它需要什麼樣的參數?它實際上是用實體中的值更新持久存儲嗎? – 2010-12-02 16:53:10
UpdateOrder是業務模型的行爲。除了封裝域邏輯和最後它需要保持更改的狀態之外,它並不重要。 – 2010-12-03 13:15:07