Was ist ein sauberer Weg (oder ein Muster), um eine Funktionsparameterüberprüfung durchzuführen?

9

Gibt es ein Entwurfsmuster oder eine saubere Methode für die Überprüfung von Funktions- / Methodenparametern (gegen zulässige Werte)?

Gegenwärtig besteht ein großer Teil des Anfangscodes in meinen Funktionen aus diesen Parameterprüfungen (leere Strings, ungültige Zeichen, existierende ID, ...) und ist, wenn nötig, ein bisschen hässlich und verschleiert den 'echten' Code von die Funktion. Normalerweise sieht mein Code so aus:

%Vor%

Für die Lösung denke ich in Python an die Dekoratoren .
Ich benutze Python, obwohl ich denke, eine gute Lösung wäre sprachunabhängig.

    
Rabarberski 21.04.2011, 10:15
quelle

3 Antworten

3

Die einzige ziemlich sprachunabhängige Sache, die ich mir im Moment vorstellen kann, ist eine Art Code-Vertrag, so dass Sie Dinge tun können wie:

%Vor%

Ich nehme an, Sie könnten in den meisten Programmiersprachen eine Art Implementierung finden.

Aktualisieren

Microsoft arbeitet an einer Implementierung und es gibt eine Java-Implementierung .

    
ChrisWue 21.04.2011 10:33
quelle
1

Jeder Parameter einer Methode repräsentiert eine Entität. Es müssen einige Einschränkungen oder Annahmen bezüglich der Argumentwerte bestehen, auf deren Basis die Methode / die gesamte Klasse funktioniert. Also schreibe ich Methoden zur Gültigkeitsprüfung dieser Parameter.

%Vor%

Der Vorteil besteht darin, doppelten Code zu vermeiden. Wenn die Nullprüfung durchgeführt wird, wird die Bereichsüberprüfung für den gleichen Parametertyp in mehreren Methoden durchgeführt, und irgendwann später ändert sich der Bereich für diesen Parameter aufgrund von Anforderungsänderungen, und dann müssen Änderungen an mehreren Stellen vorgenommen werden. Auf der anderen Seite, wenn die Prüfung in einer separaten Methode durchgeführt wird, reduziert der Umfang der Änderung.

    
Programmer in Paradise 21.04.2011 16:37
quelle
0

Ich denke nicht wirklich, nicht eine einheitliche Art, es zu tun.

Ich persönlich erkläre es in meinen Funktionen, wo der echte Code startet, wenn es viele Parameterprüfungen gibt (zufälliges Beispiel):

%Vor%

Vielleicht sollten Sie Ihre Funktionen in kleinere Funktionen aufteilen, um die Parameterprüfung zu verteilen.

    
orlp 21.04.2011 10:27
quelle

Tags und Links