Möchten Sie eine Utility-Klasse implementieren, die Verfahrensschritte in einem Validierungsprozess darstellen. Gibt es ein Muster oder beste Praxis für das?

StackOverflow https://stackoverflow.com/questions/1031643

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
};
War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top