Validation 单一责任原则对验证意味着什么

Validation 单一责任原则对验证意味着什么,validation,single-responsibility-principle,Validation,Single Responsibility Principle,单一责任原则是否意味着您的验证规则应在实体外部 如果是这样,那么每个验证规则是否使用一个类?取决于您对实体的定义。例如,您可以验证每个服务层中的输入,但此验证可能由单独的类处理。我通常将此解释为,en“实体”和实体的验证应该是单独的关注点。我通常会使用一个类来验证整个实体,但我认为没有理由通过不让该类使用其他类来限制其实现。但我不会仅仅因为实体有多个属性就将实体的验证拆分为多个类;我将验证器的职责定义为“验证实体X”。有时候,单一责任可以归结为以一种巧妙的方式定义责任,而这实际上是关于你制定规则

单一责任原则是否意味着您的验证规则应在实体外部


如果是这样,那么每个验证规则是否使用一个类?

取决于您对实体的定义。例如,您可以验证每个服务层中的输入,但此验证可能由单独的类处理。

我通常将此解释为,en“实体”和实体的验证应该是单独的关注点。我通常会使用一个类来验证整个实体,但我认为没有理由通过不让该类使用其他类来限制其实现。但我不会仅仅因为实体有多个属性就将实体的验证拆分为多个类;我将验证器的职责定义为“验证实体X”。有时候,单一责任可以归结为以一种巧妙的方式定义责任,而这实际上是关于你制定规则

有时,您可能会遇到具有多个有效状态的实体,这些实体可能处于流程的不同阶段;订单可能有单独的阶段的单独的验证器,但我认为这对每个验证者都是不同的责任。