Originariamente inviato da iako
Avrò:
- un frame che mi consente di cliccare sul tasto login,
- una dialog che mi consente di inserire nome utente e password.
A questo punto organizzo il tutto in maniera tale che ci sia un frontController che deve:
- delegare un viewController per la gestione delle pagine,
- delegare un interceptingFilter per il controllo dei campi user_name e pwd,
- passare ai livelli sottostanti la richiesta fino ad arrivare al db.
E chi l'ha detto?? In questo caso i "design pattern" possono centrare relativamente poco.
I design pattern sono una ottima cosa, in generale, ma questo non vuol dire che devi complicarti la vita solo per cercare di implementare sempre e dovunque i pattern!!!
Una cosa molto più semplice potrebbe essere (molto abbozzato):
codice:
public class FramePrincipale extends JFrame {
private JButton loginButton;
.....
public FramePrincipale() {
// ... istanzia componenti ecc....
loginButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DatiAutenticazione auth = LoginDialog.showDialog(FramePrincipale.this);
// ... fai quello che vuoi ...
}
});
}
...
}
public class LoginDialog extends JDialog {
// ... dichiarazione componenti ....
public LoginDialog(JFrame owner) {
super(owner, "Autenticazione", true); // true = modale!
// ... istanzia componenti ecc....
}
public DatiAutenticazione getDatiAutenticazione() {
// ... prende i dati dai componenti, crea un DatiAutenticazione che restituisce
}
public static DatiAutenticazione showDialog(JFrame owner) {
LoginDialog d = new LoginDialog(owner);
d.setVisible(true);
return d.getDatiAutenticazione();
}
}
public class DatiAutenticazione {
private String username;
private String password;
// ... solito costruttore e metodi getter (o anche setter)
}
Semplicemente si applica un listener al pulsante di login, si apre la dialog di login al click del pulsante (il metodo showDialog() è giusto per comodità) e poi si fa quello che si vuole con i dati di autenticazione, che sono incapsulati in una semplice classe DatiAutenticazione.
Qui non "vedo" alcun pattern particolare ... semplicemente vengono messi in pratica i principi più basilari della OOP.