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

时间:2009-05-14 19:10:02

标签: validation single-responsibility-principle

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

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

2 个答案:

答案 0 :(得分:2)

我通常会将此解释为“实体”和实体的验证应该是单独的问题。我通常会使用一个可以验证整个实体的类,但我认为没有理由通过不让该类使用其他类来约束它的实现。但是我不会因为实体有多个属性而将实体的验证分成多个类;我将验证器的责任定义为“验证实体X”。有时单一责任只能归结为以聪明的方式定义责任,而且它实际上是关于制定规则。

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

答案 1 :(得分:0)

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