验证的设计模式

时间:2011-07-01 11:39:15

标签: java spring validation

我正在开发关于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.
}

是否有任何设计模式可以取代上述情况。

感谢。

2 个答案:

答案 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