我正在开发关于spring + hibernate + annotations的项目。我需要对数据应用一些验证。
目前代码似乎是这样。
public class SomeClass{
boolean error = false;
if(!error){
check condition1
if(fails) {
error = true;
}
}
if(!error){
check condition2
if(fails) {
error = true;
}
}
if(!error){
check condition3
if(fails) {
error = true;
}
}
// similarly i have 5 to 10 validations.
}
是否有任何设计模式可以取代上述情况。
感谢。
答案 0 :(得分:4)
spring提供验证类,请参阅org.springframework.validation
该参考提供了spring处理验证错误的完整教程。 http://static.springsource.org/spring/docs/2.5.x/reference/validation.html
在我当前的项目中,我们进一步了解了一下,我们创建了一个抽象的ValidationTemplate类。我们有两种方法,一种使用List< Error>来调用抽象方法的验证方法 当我们想要验证时,我们可以只创建该抽象类的匿名实例并实现doInValidation方法。这允许你
new ValidationTemplate(){
doInValidation(List<Error> errors){
if(!condition) {
errors.add(new Error("reason");
}
}.validate();
您可以根据需要实现验证方法,如果想要更优雅的结果,可以抛出异常或返回错误列表。
不幸的是,我无法发布确切的源代码而不是这段伪代码。
答案 1 :(得分:4)
你应该看Hibernate Validator。