Ich möchte einen Mechanismus für die Methodenvalidierung haben. Was ich suche ist:Validierung für Java-Eingabeparameter
public void someMethod(@valid String emailAddress, @valid Integer ID) {
}
Dies ist eine allgemeine Klasse nicht unbedingt Java Bean. Der Grund, warum ich das möchte, ist, dass ich die Validierungslogik von dieser bestimmten Klasse entkoppeln möchte.
Auch ich möchte DRY-Prinzip verwenden, das bedeutet, wenn verschiedene verschiedene Methoden die ähnlichen Parameter verwenden werden, so möchte ich weder den Aufwand duplizieren noch inkonsistenzen mit ähnlichen Arten von Eingaben einführen wollen.
Darüber hinaus möchte ich meinen Code lesbarer machen, da sonst mein Methodenkörper mit einer if/then/else-Validierungslogik gesprenkelt wird, die es schwierig macht, die tatsächliche Logik zu verstehen und unnötige Ablenkung zu verursachen.
Wenn mein Code mit etwas Logik kommentiert wurde, dann muss jemand wie der Frühling es nennen - dieser Teil, den ich denke, verstehe ich. Ich bin mir also nicht sicher, wie ich das umsetzen kann. Wird aspektorientierte Programmierung funktionieren?
Sie können nachsehen, was der 'Hibernate Validator' für Sie tun kann. – Tom
Sie können einen Proxy für Ihre Klasse erstellen, der die Validierung pro Parameter behandelt. Ihre Annotation kann ein Element 'Class> value() ', das auf die Validierungsklasse für diesen Parameter verweist, die von Ihrem Proxy instanziiert und getestet wird. –
shmosel
Ich denke, das ist genau das, was AOP kann – ZhaoGang