In informatica le JavaBean (letteralmente, chicchi di Java) sono classi scritte in linguaggio di programmazione Java secondo una particolare convenzione. Sono utilizzate per incapsulare più oggetti in un oggetto singolo (il bean), cosicché tali oggetti possano essere passati come un singolo oggetto bean invece che come multipli oggetti individuali. La specifica della Sun Microsystems le definisce come "componenti software riutilizzabili che possono essere manipolate visivamente in un tool per il build".

Convenzioni JavaBean

modifica

Al fine di funzionare come una classe JavaBean, una classe di un oggetto deve obbedire a certe convenzioni in merito ai nomi, alla costruzione e al comportamento dei metodi. Queste convenzioni rendono possibile avere tool che possono usare, riusare, sostituire e connettere JavaBean.

Le convenzioni richieste sono:

  • La classe deve avere un costruttore senza argomenti;
  • Le sue proprietà devono essere accessibili usando get, set, is (usato per i booleani al posto di get) e altri metodi (cosiddetti metodi accessori) seguendo una convenzione standard per i nomi;
  • La classe dovrebbe essere serializzabile (capace di salvare e ripristinare il suo stato in modo persistente);
  • Non dovrebbe contenere alcun metodo richiesto per la gestione degli eventi;

Dato che questi requisiti sono abbondantemente espressi come convenzioni piuttosto che implementando interfacce, qualche sviluppatore vede le JavaBean come Plain Old Java Object (POJO) che seguono alcune convenzioni per i nomi.

Esempio di JavaBean

modifica
// PersonaBean.java

public class PersonaBean implements java.io.Serializable {
    
    private String nome;
    private boolean sposata;

    // Costruttore senza argomenti
    public PersonaBean() { }

    // Proprietà "nome" (da notare l'uso della maiuscola) lettura / scrittura
    public String getNome() {
        return this.nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }

    // Diversa sintassi per gli attributi boolean ( 'is' al posto di 'get' )
    public boolean isSposata() {
        return this.sposata;
    }
    public void setSposata(boolean sposata) {
        this.sposata = sposata;
    }
}
// TestPersonaBean.java

public class TestPersonaBean {
    public static void main(String[] args) {

        PersonaBean persona = new PersonaBean();
        persona.setNome("Bob");
        persona.setSposata(false);

        // Output: "Bob [persona non sposata]"
        System.out.print(persona.getNome());
        System.out.println(persona.isSposata() ? " [persona sposata]" : " [persona non sposata]");
    }
}

Applicazioni

modifica

AWT, Swing, e SWT, i principali toolkit per GUI in Java, usano convenzioni JavaBean soprattutto per la loro dinamicità e per la loro portabilità. Essi consentono poi agli editor di GUI come il Visual Editor di Eclipse e il GUI Editor di NetBeans di mantenere una gerarchia di componenti e fornire accesso alle loro proprietà attraverso metodi della famiglia get e set.

Voci correlate

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Java (linguaggio di programmazione)

In informatica Java è un linguaggio di programmazione ad alto livello, orientato agli oggetti e a tipizzazione statica, che si appoggia sull'omonima piattaforma

Plain Old Java Object

che lo rendono un "Specialized Java Object" (SJO o (sic) SoJO). Lo stesso argomento in dettaglio: JavaBean. Un JavaBean è un POJO che è serializzabile

Java Management Extensions

stato (push). Java EE 6 prevede che un Managed Bean sia un bean implementato da una classe Java, denominata classe bean. Una classe Java di primo livello

Enterprise JavaBeans

In informatica gli Enterprise JavaBean (EJB) sono i componenti software che implementano, lato server, la logica di business di un'applicazione web all'interno

JavaServer Faces

utenti siano validi; backing beans e navigazione: per backing bean si intende una classe Java che ha delle annotation che la rendono visibile ed utilizzabile

Jakarta Transactions

può essere applicata ad ogni classe che la Java EE definisce come managed bean (che include i CDI managed bean). L'esempio di codice sottostante illustra

Swing (Java)

componente). In particolare i componenti Swing Java Beans seguono le specifiche dell'architettura JavaBean. Modificabile l'applicazione ha modo di ottenere

Kotlin (linguaggio di programmazione)

gira sulla macchina virtuale Java (JVM) ed è ispirato ad altri linguaggi di programmazione tra i quali Scala e lo stesso Java, con cui è designato per essere