2010-06-04 119 views
0

在接受採訪時我的朋友被要求設計一個驗證框架,可以在任何一個給我的想法如何設計一個有效的框架驗證框架

我們的方法是 具有的所有方法所有的方法 和類implementaion接口

+0

什麼是驗證和反對什麼?我可以考慮從模式匹配到業務規則引擎的各種驗證,請問您可以添加一些細節。 – Esko 2010-06-04 08:56:13

+0

對不起,沒有提到所有的細節, 我說abt驗證的形式,如名稱,郵件ID,數字,所以我們需要創建一個通用框架,做所有這些。 – Pedantic 2010-06-04 10:25:35

回答

0

我不確定我是否理解你的方法,這聽起來對我很模糊。

我會去基於註解的方法。可以在枚舉中定義具有特定參數的不同驗證類別,然後通過註釋鏈接到特定屬性。

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()

我最近在自己的項目中實現了這個簡單的版本,但是有幾個可靠的例子(可能有不同的實現),例如,在Hibernate和Spring中。