单一责任原则是否意味着您的验证规则应该在实体外部?
如果是这样,您是否每个验证规则使用一个类?
我通常会将此解释为意味着“实体”和实体的验证应该是单独的关注点。我通常会使用一个可以验证整个实体的类,但我认为没有理由通过不让该类使用其他类来限制其实现。但是我不会仅仅因为实体具有多个属性而将实体的验证拆分为多个类;我将验证者的职责定义为“验证实体 X”。有时单一职责归结为以一种巧妙的方式定义职责,这实际上是关于你制定规则。
有时您可能会遇到具有多个有效状态的实体,这些状态可能处于流程的不同阶段;一个订单可能有不同阶段的不同验证者,但我认为这对每个验证者来说是不同的责任。
取决于您对entity的定义。例如,您可以验证每个服务层中的输入,但此验证可能由单独的类处理。