Je ne suis pas sûr de comprendre votre approche, cela me semble assez vague.
J'irais avec une approche basée sur l'annotation. Différentes classes de validations avec des paramètres spécifiques peuvent être définies dans une énumération, puis liées à des propriétés spécifiques via des annotations.
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;
}
Lors de l'exécution, les annotations peuvent être traitées en utilisant l'introspection de haricot, avec PropertyDescriptor
et Method.getAnnotation()
.
J'ai récemment implémenté une version simple de ceci dans notre propre projet, mais il y a plusieurs exemples robustes autour (avec éventuellement une implémentation différente), par ex. à Hibernate et au printemps.
Qu'est-ce qui est en cours de validation et contre quoi? Je peux penser à toutes sortes de validations de la correspondance de modèles aux moteurs de règles d'affaires ici, pourriez-vous ajouter un peu plus de détails, s'il vous plaît. – Esko
Désolé de ne pas mettre tous les détails en évidence, Je parlais de la validation sur des formulaires comme le nom, les identifiants de courrier, le numéro, donc nous devons créer un cadre général pour faire tout cela. – Pedantic