Möchten Sie eine Utility-Klasse implementieren, die Verfahrensschritte in einem Validierungsprozess darstellen. Gibt es ein Muster oder beste Praxis für das?
-
06-07-2019 - |
Frage
Ich möchte eine Utility-Klasse implementieren, die Methoden interne Schritte eines Validierungsprozesses sind. Gibt es ein Muster für diesen oder soll ich einen völlig anderen Ansatz verwenden? Im offen für Anregungen. (Ich bin in abap Codierung, aber ich glaube nicht, dass das wichtig ist)
Edit: Es ist keine Frontend Validierung von Text, aber eine Prüfung, wenn bestimmte Bedingungen angepasst sind. (Der Parameter ist tatsächlich eine Tabelle. Für jede Zeile i überprüfen, ob es Bedingungen angepasst als ein Beispiel ist, wenn es ein gültiger Eintrag in einer anderen Tabelle db.)
Somthing wie folgt aus:
Class Validator
{
private bool flag_error;
private Step1 ( var a, var b )
{
//do somthing ...
}
private Step 2 ( var a )
{
//do somthing ...
}
private Step 3 ( var c )
{
//do somthing ...
}
static Check(var a, var b, var c)
{
Step1(a, b );
Step2( a );
Step3( c );
return flag_error;
}
}
Verbrauch:
if (Validator.Check(a,b,c) )
{
//do good stuff
}
else
{
//do error handling
};
Lösung
Design-Entscheidungen hängen wirklich auf die Details. Wird es mehrere Validierer Algorithmus-Implementierungen sein? Versuchen Sie, eine Strategie oder Template-Methode Muster.
Wenn Sie nur diese eine Klasse müssen diese mehrere Schritte ausführen, haben Sie bereits ein Muster umgesetzt, Bestand Methode . Halte es einfach. Fügen Sie keine Schichten von Komplexität, wenn sie wirklich benötigt werden.
Andere Tipps
Es gibt eine patten in den Sinn kommt. Es ist die Schablonenmuster
Ich würde eine abstrakte Klasse mit Check
wie oben und den Step
Methoden implementiert, indem die konkreten Klassen umgesetzt werden.
Ich habe einmal ein Besuchermuster geschrieben, die zur Trennung der eigentliche Validierung von den Feldern ganz gut funktioniert.
verwende ich C # für die Validierung Zweck Attribute. Sie können einen ausführlichen Artikel hier rel="nofollow finden. Dies hilft Ihnen, die Validierung durch Konfiguration über Konvention umzusetzen. Mit dieser Technik Ihre Validierungsroutinen werden sehr abstrakt und wiederverwendbar.