我们有一个对象列表,需要在发送到下游之前进行验证和处理。我可以使用bean验证器来检查有效性,如果项目无效,我可以从列表中删除它们。使用验证器改变输入状态是正确的方法吗?列表应该在业务逻辑中被过滤/修改,还是我可以有一个相同的自定义验证器?
nwnhqdif1#
假设验证读取但从不修改对象。这是确保验证器是独立的并且因此是可组合的唯一方法。否则,从另一个验证器的Angular 来看,一个验证器引入的更改可能会使对象无效,反之亦然。这也意味着在同一个对象上多次运行验证可能会得到不同的结果(这通常是没有意义的,在外部世界改变的特定情况之外)。因此,尽管没有什么可以阻止您修改约束验证器中的对象,但“正确的”(不管它意味着什么)方法似乎是将过滤留在业务逻辑端,同时将特定的验证规则保留在验证层中。
1条答案
按热度按时间nwnhqdif1#
假设验证读取但从不修改对象。
这是确保验证器是独立的并且因此是可组合的唯一方法。否则,从另一个验证器的Angular 来看,一个验证器引入的更改可能会使对象无效,反之亦然。这也意味着在同一个对象上多次运行验证可能会得到不同的结果(这通常是没有意义的,在外部世界改变的特定情况之外)。
因此,尽管没有什么可以阻止您修改约束验证器中的对象,但“正确的”(不管它意味着什么)方法似乎是将过滤留在业务逻辑端,同时将特定的验证规则保留在验证层中。