Q
域模型验证?
3
A
回答
8
如果验证规则形成业务域的一部分,他们属于在模型。
聚合根负责维护它所包含的不变量,因此验证它们属于它的责任范围。
如果您发现验证规则非常复杂,您可以创建验证服务,该验证服务将由聚合根用于此功能。
2
这取决于您拥有的验证种类。
如果只是需要一个客户名称,并且字段的最大长度,那么它不是域本身的责任。这应该是输入验证。
如果你正在创建一个网上商店,并且当不是所有的商品都有库存时该订单是无效的,那么你有一些真正的域验证。
Domain Driven Design 101具有起始于滑动44.
1
Seealso一些很好的例子:http://lostechies.com/jimmybogard/2009/02/15/validation-in-a-ddd-world。
“不是回答这个问题,”这个对象是否有效“,试着回答”这个操作能否被执行?“这个问题。
相关问题
- 1. 验证域模型
- 2. MVC域模型验证
- 3. DDD域模型复杂验证
- 4. 上下文域驱动模型验证
- 5. 相关领域的Django模型验证
- 6. 域模型 - 业务验证/错误
- 7. 模型验证
- 8. 模型验证
- 9. KO3验证模块 - 子域
- 10. 模型验证Symfony2
- 11. 模型未验证
- 12. Backbone.js验证模型
- 13. Zend模型验证
- 14. 模型验证与
- 15. Java模型验证
- 16. MVC模型验证
- 17. 验证在模型
- 18. Kohana验证模型
- 19. Yesod模型验证
- 20. 验证form_tag没有领域从模型在领域
- 21. WTForms验证绑定到模型验证
- 22. Rails验证 - 在创建子模型时验证父模型
- 23. 验证视图模型根据模型
- 24. 验证模型和视图模型mvc
- 25. 验证模型或视图模型?
- 26. 验证视图模型的子模型
- 27. 针对父级模型验证模型
- 28. CodeIgniter验证安全模型
- 29. 模型验证和注册
- 30. Django验证组模型m2m
感谢您的快速回答。正如你所说,业务规则应该在域级进行检查,并且通常由集合根来检查。那些微不足道的验证规则呢?例如,Customer实体的名称不能为空。在哪里检查? – 2012-04-03 12:41:57
@MickaelMarrache - 这是你的有限背景下的商业规则吗?是?然后它属于该域。像这样的东西应该直接由'客户'实体来强制执行。 – Oded 2012-04-03 12:43:27
我同意你的看法。验证业务域规则属于业务域层。直接在GUI中(出于性能原因)或持久层,可以在GUI中验证来自GUI的用户输入。 – Roland 2012-04-11 13:37:08