2016-10-30 2 views
0

Gibt es vielleicht eine Faustregel für welche Klasse sollte für die Formularvalidierung verantwortlich sein?Formvalidierung, werfende Ausnahme welche Klasse sollte verantwortlich sein

Ein kurzes Beispiel:

Ich habe 2 Klassen PreferencesUI.java und NormalDistributionPreferences.java

NormalDistributionPreferences.java hat alle Methoden statisch und können aus verschiedenen Teilen meiner App Werte von den Einstellungen API zu setzen und zu erhalten /registrieren.

Beispiel:

public static void setAccuracyAuto(boolean auto){ 
    preferences.putBoolean("AccuracyAuto", auto); 
} 

und in PreferencesUI.java nach Benutzer das Formular ausfüllt und drückt speichern diese ausgeführt wird:

private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {           
    if(trapeziumRuleRadioButton.isSelected()){ 
     NormalDistributionPreferences.setIntegrationType("TrapeziumRule"); 

    }else if(midPointRuleRadioButton.isSelected()){ 
     NormalDistributionPreferences.setIntegrationType("MidPointRule"); 

    }else{ 
     NormalDistributionPreferences.setIntegrationType("SimpsonsRule"); 
    } 
    NormalDistributionPreferences.setAccuracyAuto(accuracyCheckBox.isSelected()); 
    NormalDistributionPreferences.setAccuracy(0); 
    dispose(); 
} 

Meine Frage ist, sollte, wenn der Benutzer Setter in Vorlieben Klasse Exception werfen wählt etwas, das ich nicht will sie wählen und dann in saveButtonActionPerformed versuchen und fangen - catch, dass ein Fehler angezeigt würde? Accuracy Integer sollte immer positiv sein und für einige Integrationstypen nur dann, wenn diese Regel in preferencesUI beim Speichern von Daten oder in normalenDistributionPreferences erzwungen wird.

+0

Ich bin nicht 100% sicher, was die Frage ist, aber wenn es um Validierung der Eingabe geht, je früher das getan wird, desto besser. Überprüfen Sie die Inhalte so schnell wie möglich und geben Sie Feedback – Jayce444

Antwort

0

Meiner Meinung nach muss jede Entität ihre Integrität wahren. Wenn also die Präferenzen begrenzt sind, müssen Sie diese Integrität in Setter-Methoden oder durch AOP garantieren. Wenn einige Client-Klassen versuchen, von diesen Richtlinien zu verletzen, dann fangen sie einige richtige Ausnahmen und die Behandlung dieser Ausnahmesituationen ist Aufgabe dieser Client-Klassen, diese unzulässigen Werte zu übergeben.

Verwandte Themen