2011-07-01 10 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クラスを作成しました。 エラー>
検証する場合、その抽象クラスの匿名インスタンスを作成し、doInValidationメソッドを実装することができます。これは、あなたが望むとおりに検証メソッドを実装することができ、あなたが例外をスローする可能性や、よりエレガント結果をしたい場合は、エラーとリストを返す

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

することができます。
残念ながら、この疑似コードの代わりに正確なソースを投稿することはできません。

4

あなたはHibernate Validatorです。

+1

一般的な情報:JSR 303 - Bean Validation。 Hibernate Validatorはこの標準の「唯一の」実装です。 – Ralph

関連する問題