Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Modello da seguire

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158

    Modello da seguire

    Nel mio percorso di programmazione da autodidatta mi sto imbattendo in una domanda che mi assale,io sto programmando la mia applicazione un po seguendo un po il modello del netbeans,spiego io dichiaro la parte grafica possibilmente tutta in un metodo Inizializzacomponennti(), o in inglese initComponent(),per poi creare dei metodi in un'altra parte per la gestione degli eventi,riempimento combo,derivazioni da database.Volevo appunto sapere se c'è un modello da seguire.

  2. #2
    si chiamano pattern, e ce ne sono "un bel pò".

    quello che dici tu in realtà non è un pattern, ma è una metodologia di programmazione, ed è probabilmente soggettiva. se lavori da solo fai come meglio credi, se lavori in gruppo di solito si sceglie una linea guida e si condivide tra gli sviluppatori (per avere possibilità di capire cosa scrivono gli altri e viceversa).

    Comuqnue ti consiglio di leggerti MVC pattern e l'Observer

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

    Re: Modello da seguire

    Originariamente inviato da Nio74
    sto programmando la mia applicazione un po seguendo un po il modello del netbeans,spiego io dichiaro la parte grafica possibilmente tutta in un metodo Inizializzacomponennti(), o in inglese initComponent(),per poi creare dei metodi in un'altra parte per la gestione degli eventi,riempimento combo,derivazioni da database.Volevo appunto sapere se c'è un modello da seguire.
    Gli editor "visuali" della interfaccia grafica generalmente ti "impongono" il loro modo di gestire la interfaccia utente. Spesso usano layout manager complessi come GroupLayout e con il fatto che in genere mettono tutti i tipi completamente qualificati, alla fine hai un sorgente che è praticamente illeggibile/incomprensibile.
    Poi ad esempio il fatto che "loro" implementano il metodo pubblico di un listener e generano un "forward" ad un metodo privato (che puoi modificare) del tipo private void jButton1ActionPerformed1( .... ). Questo di per sé è inutile .... non è che "obbligatorio" fare così ... è semplicemente il "loro" modo.

    Guarda ... io non uso editor "visuali" in Java, il codice per creare interfacce Swing lo scrivo tutto "a mano" e non ho mai avuto seri problemi, semplicemente perché ho appreso molto bene Swing.

    Per il resto, si possono fare le cose in svariati modi. Io ad esempio cerco di spezzare il più possibile in classi distinte. Anche se tecnicamente potrei fare una unica classe che estende JFrame e che gestisce tutti i pannelli/componenti, generalmente preferisco fare: una classe es. ApplicationFrame (estende JFrame), una classe ApplicationMainPanel (estende JPanel è il pannello "principale") e poi se ci sono aree particolari e/o riutilizzabili creo ulteriori classi che estendono JPanel.

    Poi il codice della inizializzazione di frame/pannelli,ecc... lo metto solo nel costruttore, non faccio metodi es. initComponents() o simili. Anche per un motivo "tecnico" generale. Se ci sono campi di istanza che sono dei "blank final", non possono essere inizializzati in un metodo ... devono essere inizializzati per forza nel costruttore (o al limite in un instance init-block)!

    Per quanto riguarda la gestione degli eventi, cerco di nascondere i listener il più possibile, implementandoli o con anonymous inner class o con inner classi "regular" ma private. Solo in certi casi e per "applicazioni" (cioè codice che altri non usano direttamente) allora a volte implemento il listener nella classe del frame/pannello.

    E per i metodi dei listener (specialmente se in anonymous inner class), generalmente cerco di farli più brevi possibile. Nel senso che posso certamente mettere dentro la catena di if per testare o il "source" o il action "command" ma poi la "vera" elaborazione la faccio fare o a metodi di altre classi o a metodi privati di quella classe. In pratica cose del tipo:

    codice:
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
    
        if (source == saveButton) {
            saveAction();
        } else if (source == closeButton) {
            closeAction();
        }
    }
    Non metto di certo la elaborazione direttamente nel actionPerformed!

    Spero di esserti stato utile.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    Utilissimo come sempre Grazie!!

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.