Quando dovrei progettare una libreria di classi usando gli standard java bean?

1

Ho finito di studiare i java bean e, da quello che ho capito, sono classi regolari solo che sono serializzabili, tutte le proprietà sono private e sono accessibili tramite metodi getter e setter e contengono un costruttore public no argument.

Riesco a vedere i vantaggi e gli svantaggi di scrivere classi di bean, ma ho problemi a capire quando dovrei scrivere bean Java e quando non dovrei. Quando si costruisce una libreria di classi, quali tipi di classi trarrebbero vantaggio dall'essere bean e quali no?

    
posta SteelToe 03.02.2017 - 19:44
fonte

1 risposta

7

Vediamo quali proprietà hanno i bean Java:

  1. Costruttore senza argomenti.
  2. Getter e setter per tutti gli stati.
  3. Serializable.

Che cosa significa questo , tuttavia?

  1. Può essere costruito facilmente senza dipendenze.
  2. Stato semplice.
  3. Può essere inviato facilmente attraverso uno stream, ad es. un file o un socket.
  4. Nessuna menzione del comportamento : mentre non è vietato, siamo incoraggiati ad avere oggetti di stato ma privi di comportamento.

Questo descrive perfettamente un oggetto che modella lo stato, non il comportamento. In idiomi popolari come MVC o MVVM , un bean è un modello .

Se si dispone di un oggetto che rappresenta dati che possono essere passati tra oggetti o con altri sistemi, questo è un candidato perfetto per un bean Java.

Se si dispone di un oggetto che esegue azioni e indirizza il traffico, questo è non un candidato per un bean Java. Se si dispone di un oggetto che gestisce una vista, ovvero converte lo stato in un formato adatto per la presentazione all'utente, anche questo non è un candidato per un bean Java.

Detto questo, le tre proprietà non sono esclusive per i bean Java e altri oggetti potrebbero tecnicamente cadere nella categoria bean. Tuttavia, i bean sono esattamente come pensiamo e utilizziamo un oggetto come i tre vincoli sopra menzionati.

    
risposta data 03.02.2017 - 20:05
fonte

Leggi altre domande sui tag