我们使用spring验证来验证我们的模型,然后将它们填充到数据库中。 所以例如
订单 - > OrderItem的
在将订单保存到数据库之前,它由OrderValidator验证
OrderValidator验证OrderItemValidator的订单委托,以便使用Order验证OrderItem。因此,在这种情况下,层次结构或验证器看起来像
OderValidator - > OrderItemValidator
知道订单有orderItems存在于验证器和模型中。
我想知道这是否是隐式重复的标志(类似于Parallel inheritance hierarchy代码味道)。 如果是的话,我有什么方法可以避免它?
答案 0 :(得分:1)
我会考虑将验证过程划分为类不可知函数,以及真实类可以与验证函数一起使用的每个类的参数,以基本上检查自身。这种方法的可行性需要更多的问题空间知识。
答案 1 :(得分:0)
根据我的经验,验证器最好使用某种装饰器来实现。它们不应该继承自任何,因为验证者之间没有理性的is-a关系。
验证器仅查看模型附带的数据,而不是模型的行为,因此我认为任何层次结构都不合适。