Plain Old Java Object: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Traduzione (non automatica) della parte di en:Plain Old Java Object
Traduzione (non automatica) d'una parte di en:Plain Old Java Object
Riga 20:
#non contenga delle annotazioni prespecificate, come in<source lang="java">@javax.persistence.Entity public class Baz { ...</source>
Tuttavia, a causa di difficoltà tecniche ed altre ragioni, molti programmi o molti framework descritti come conformi a POJO in realtà richiedono ancora l'uso di annotazioni prespecificate per caratteristiche quali persistenza per un corretto funzionamento. L'idea è che se l'oggetto (in realtà classe) era un POJO prima dell'aggiunta di qualsiasi annotazione, e potesse tornare allo status di POJO se si eliminassero le annotazioni, allora può ancora essere considerato un POJO. Dunque l'oggetto di base rimane un POJO nel senso che non ha delle caratteristiche speciali (come un'interfaccia implementata) che lo rendono un "Specialized Java Object" (SJO o (sic) SoJO).
 
== Variazioni contestuali ==
=== JavaBeans ===
Un [[JavaBean]] è un POJO che è [[Serializzazione|serializzabile]], ha un [[costruttore]] senza argomenti, e consente l'accesso a proprietà utilizzando metodi getter e setter che seguono una semplice convenzione di nominare. A causa di questa convenzione, si può fare delle semplici referenze dichiarative alle proprietà di JavaBeans arbitrarie. Un codice utilizzante tale referenza dichiarativa non sa nulla del tipo del ''bean'' (oggetto singolo), e si può utilizzare il ''bean'' con molti framework senza questi framework che hanno accesso al tipo esatto del ''bean''.
 
La specificazione di JavaBeans, se pienamente implementata, leggeramente viola il modello POJO (come la classe deve implementare l'interfaccia Serializable) ad essere un vero JavaBean. Molte classi di POJO ancora nominate JavaBeans non soddisfano detto requisito. A causa che Serializable è un'interfaccia senza metodo, questo non è un onere.
 
Il codice seguente mostra un esempio di un componente di [[Java Server Faces|JSF]] avente un [[Duplex|bidirezionale]] legante ad un proprietà di POJO:
 
<syntaxhighlight lang="xml">
<h:inputText value="#{mioBean.alcunaProprieta}"/>
</syntaxhighlight>
 
La definizione del POJO può essere espresso come segue:
 
<syntaxhighlight lang="java">
public class MioBean
{
private String alcunaProprieta;
 
public String getAlcunaProprieta()
{
return alcunaProprieta;
}
 
public void setAlcunaProprieta(String alcunaProprieta)
{
this.alcunaProprieta = alcunaProprieta;
}
}
</syntaxhighlight>
 
A causa delle convenzioni di nominare in JavaBean l'unica referenza "alcunaProprieta" può essere tradotta automaticamente al metodo ''getAlcunaProprieta()'' (o ''isAlcunaProprieta()'' se la proprietà è di [[variabile booleana|tipo booleano]]) per ottenere un valore, ed al metodo ''setAlcunaProprieta(String)'' per mettere un valore.
 
==Referenze==