2
数据验证:是否是分隔类?
当我有大量需要验证的数据时,我应该仅出于验证目的创建一个新类,还是应该坚持方法内验证? 我的特定示例设想了一个锦标赛和一个事件/类别类:Tournament和Event,它模拟了一个体育锦标赛,每个锦标赛都有一个或多个类别。 这些类别中有很多事情需要验证:球员应该为空,应该是唯一的,每个球员应该参加的比赛数量,每次比赛都有的球员数量,预定义的对决,以及包括许多其他东西在内的非常重要的事情。复杂的规则。 我还需要整体验证某些部分,例如类如何相互集成。例如,对a Player进行单一验证就可以了,但是如果一个事件两次具有相同的玩家,那就是验证错误。 那怎么办呢::使用模型类的设置器和类似方法添加数据时,我完全忘记了任何预检查,而是让验证类来处理。 因此,我们将有类似EventValidator与Event作为成员,和validate()用来验证整个对象的方法,再加上单一的方法来验证所有成员的规则。 然后,在实例化有效对象之前,我将执行验证以防止出现非法值。 我的设计正确吗?我应该做些不同的事情吗? 另外,我应该使用布尔值返回验证方法吗?或者,如果验证失败,则抛出异常?在我看来,最好的选择是布尔返回方法,并在实例化对象时引发异常,例如: public Event() { EventValidator eventValidator = new EventValidator(this); if (!eventValidator.validate()) { // show error messages with methods defined in the validator throw new Exception(); // what type of exception would be best? should I create custom ones? } }
16
java
design
data
validation