如果我的领域模型不应该知道/关心存储库,那么像.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