saraciao ha scritto:
Okay capito quindi come dovrei fare secondo te?
Ci sono sicuramente diversi design che si possono applicare per rendere facile e riutilizzabile la validazione. Una soluzione abbastanza semplice è incapsulare la lista degli errori e i metodi di validazione in una apposita classe.
Ad esempio una classe Validazione (ma forse meglio Validazion
i) fatta più o meno così:
public class Validazioni {
private List<String> messaggiErrore = new ArrayList<String>();
public boolean emailObbligatoria(String email, String msgMancante, String msgInvalido) {
// verifica se email "vuota", se sì, aggiungi msgMancante e return false
// verifica formato email, se errato, aggiungi msgInvalido e return false
// altrimenti return true
}
// ecc.....
}
E poi vari altri metodi es.
public boolean provinciaObbligatoria( ....... )
public boolean capObbligatorio( ....... )
ecc...
ecc...
Nota che il ritorno di un boolean è solo di "comodità" e non è detto che devi per forza usare il boolean di ognuno!
Poi naturalmente anche alcuni metodi per ispezionare gli errori:
public boolean valido() ---> dice se la lista dei messaggi di errore è vuota
e magari anche l'inverso (può essere utile in certi casi)
public boolean nonValido()
e anche
public List<String> getMessaggiErrore()
A quel punto, nel tuo actionPerformed farai semplicemente:
String email = textField_Email.getText();
.....
Validazioni validazioni = new Validazioni();
validazioni.emailObbligatoria(email, "Inserisci una email", "La email inserita non è valida");
validazioni.xxxxx( ....... );
validazioni.yyyyy( ....... );
if (validazioni.valido()) {
// fai la tua registrazione
} else {
// passa validazioni.getMessaggiErrore() alla tua dialog di errore
}
Guarda che questa è normalissima programmazione ad oggetti, è stata semplicemente incapsulata la logica di validazione e la gestione della lista errori in una classe apposita. In questo modo è facilmente riutilizzabile anche in altre parti e in queste parti non ti devi preoccupare di tutti i dettagli di "basso" livello quali creare la lista, fare le add ecc....