Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    106

    [JAVA] Problemi implementazione design pattern

    Ciao ragazzi,
    è la prima volta che provo a strutturare un programmino utilizzando i design pattern.Ho capito a cosa servono, ma ho grossi problemi nelle implementazioni.
    Supponiamo che voglia realizzare (in java) una piccola applicazione che consente all'utente di effettuare un login. 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.

    A livello progettuale credo che tutto sia corretto. Il serio problema che mi si presenta è: come realizzo tutto ciò?

    E' corretto fare qualcosa di questo genere?

    FrontController(){
    public void apriFrame(JFrame frame){
    ViewController.ApriFinestra(frame);
    }

    public void apriDialog(JDialog login){
    ViewController.ApriDialog(login);
    }

    public boolean controllaCampi(JTextField tf){
    return InterceptingFilter.ctrlCampi(tf);
    }
    }

    Spero che qualcuno sia in grado di aiutarmi.

    Ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Problemi implementazione design pattern

    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.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    106
    Si d'accordo. Il mio problema, pero', è che non devo limitarmi alla semplice login, ma devo realizzare qualcosa di più complesso. Ho utilizzato la login come esempio, ma dovrei fare in modo che l'intera applicazione sia progettata in maniera tale che vi siano i 3 soliti livelli architetturali: presentazione, dominio, sorgente dati.

    Ecco perchè insisto sui design pattern, anche se non gli ho mai "utilizzati".

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.