领域种子与交叉切割 - 排序的东西

时间:2014-08-14 15:56:07

标签: domain-driven-design

seedwork是一个具有通用域逻辑的独立项目:实体,VO,存储库和UoW合同的基础,规范等。

但我无法确定下列地点:

  1. 验证器。
    我想将验证规则与实体分开。验证规则库必须在Domain seedwork和Validator合同中,但Validator实现呢?
  2. 业务规则评估员。
    相同的情况,但有业务规则和业务规则评估员。

2 个答案:

答案 0 :(得分:2)

我避免尝试在一个地方进行验证。 一种尺寸适合所有的概念通常是无稽之谈,特别是在DDD中。您可以将最基本的验证添加到实体中,以确保您的实体永远不会处于无效状态。除此之外,您的验证逻辑可能应该在您验证的位置,即UI验证逻辑,应该进入UI /表示层。

业务规则应该放在您的域模型中。

答案 1 :(得分:0)

在我提出问题时,答案来了。如果我错过了什么,请纠正我。

域种子必须包含仅由Domain使用的公共逻辑。可以在多个层中使用的逻辑必须是横切的。

因此,Validator合同和实施必须是跨部门和业务规则评估者。验证规则库和业务规则库仅由域使用,并且必须位于域种子工作中。

<强>更新 还有另一种选择:Validator和Business Rules Evaluator是生活在Domain seedwork中的基础,用于CustomerCanPersistedValidator等特定实现。