2010-06-04 8 views
0

은, 하나는 어떻게 효율적인 프레임 워크를 설계하는 나에게 아이디어를 줄 수검증 프레임 워크

우리의 접근 방식 했다 모든 메소드의 모든 방법 및 클래스 implementaion을 갖는 인터페이스

+0

유효성 검사 대상 및 대상은 무엇입니까? 여기서는 패턴 매칭에서부터 비즈니스 규칙 엔진에 이르기까지 모든 종류의 유효성 검사를 생각할 수 있습니다. 좀 더 자세하게 설명해주십시오. – Esko

+0

모든 세부 사항을 metIONing하지 못해 죄송합니다. 이름, 메일 ID, 숫자와 같은 형식으로 abt 유효성 검사를 수행 했으므로이 모든 작업을 수행하는 일반화 프레임 워크를 만들어야합니다. – Pedantic

답변

0

나는 당신의 접근 방식을 잘 모르겠다. 나는 꽤 모호하게 들린다.

필자는 주석 기반 접근 방식을 사용할 것입니다. 특정 매개 변수를 사용하는 다양한 유효성 검사 클래스를 enum에 정의한 다음 주석을 통해 특정 속성에 연결할 수 있습니다.

public enum Validation { 
    NUMERIC, 
    TWO_DECIMAL_PLACES, 
    ...; 
} 

@Target(ElementType.METHOD) 
@Retention(RetentionPolicy.RUNTIME) 
@Inherited 
public @interface MyAnnotation { 
    ... 
    Validation[] validation() default { }; 
    ... 
} 

... 
@MyAnnotation(
     ... 
     validation = { Validation.NUMERIC, Validation.TWO_DECIMAL_PLACES }) 
public BigDecimal getCharge() { 
    return Charge; 
} 

은 런타임시 주석은 PropertyDescriptorMethod.getAnnotation()으로 콩 내성을 이용하여 처리 될 수있다.

나는 최근에 우리 자신의 프로젝트에서이 간단한 버전을 구현했지만, 여러 구현 예가있을 수 있습니다. 최대 절전 모드와 봄.

0

피터와 동의하십시오. Spring을 사용하는 어노테이션 기반 접근법에 대한 nice introduction이 있습니다. 관심이 있으시면 JSR303도 있습니다.