2011-07-01 4 views
2

봄 + 최대 절전 모드 + 특수 효과에 대한 프로젝트를 개발 중입니다. 데이터에 대한 유효성 검사를 적용해야합니다.유효성 확인을위한 디자인 패턴

현재 코드가 이렇게 보입니다.

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. 
} 

위의 시나리오를 대체 할 수있는 디자인 패턴이 있습니까?

감사합니다.

답변

4

스프링은 유효성 검사 클래스를 제공합니다. org.springframework.validation을 참조하십시오.
참조는 스프링이 유효성 검사 오류를 처리하는 방법에 대한 전체 자습서를 제공합니다. http://static.springsource.org/spring/docs/2.5.x/reference/validation.html

내 현재 프로젝트에서 우리는 좀 더 나아가서 추상화 된 ValidationTemplate 클래스를 작성했습니다. 우리는 두 개의 메소드, 즉 List를 가진 추상 메소드를 호출하는 validate 메소드를 가지고 있습니다. >
검증하고자 할 때, 그 추상 클래스의 익명 인스턴스를 생성하고 doInValidation 메소드를 구현할 수 있습니다. 이

new ValidationTemplate(){ 
    doInValidation(List<Error> errors){ 
    if(!condition) { 
     errors.add(new Error("reason"); 
    } 
    }.validate(); 

당신이 원하는대로, 검증 방법을 구현할 수있는 당신이 더 우아한 결과를 원하는 경우는 예외를 던지거나 오류가있는 목록을 반환 할 수 당신을 수 있습니다.
불행히도이 의사 코드 대신 정확한 소스를 게시 할 수 없습니다.

4

너는 Hibernate Validator이어야한다.

+1

더 일반적인 내용 : JSR 303 - Bean 유효성 검사. Hibernate Validator는이 표준의 "유일한"구현이다. – Ralph