Lan*_*och 11 domain-driven-design lookup-tables aggregateroot
作为我的域模型的一部分,假设我有一个WorkItem对象.该WorkItem对象具有多种查找值的关系,例如:
WorkItemType:
Priority:
而且也可能会被更多的,如Status,Severity等...
DDD声明如果聚合根目录中存在某些内容,则不应尝试在聚合根目录之外访问它.因此,如果我希望能够添加像Task这样的新WorkItemTypes,或者像Critical这样的新优先级,那么这些查找值是否需要与自己的存储库聚合根?这似乎有点矫枉过正,特别是如果它们只是一个关键的价值对.我应该如何允许用户修改这些值并仍然符合聚合根封装规则?
兰登,我认为唯一的办法就是让那些价值对聚合起来.我知道这可能看起来有点过头了,但那是DDD把东西制成小部件.
我认为使用存储库的正确方法是:
请记住,DDD只是一套指导方针,而不是硬道理.如果您认为这有点过分,则可能需要创建一个将对返回为值对象的查找.如果您没有在应用程序中添加值对的功能,而是通过数据库,这可能会特别有效.
作为旁注,好问题!有很多关于这种情况的博客文章......但并非所有人都同意最好的方法.
| 归档时间: |
|
| 查看次数: |
1747 次 |
| 最近记录: |