Plain Old Java Object: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LauBot (discussione | contributi)
m Bot: passaggio degli url da HTTP a HTTPS
ValterVBot (discussione | contributi)
m Definizione: tag source deprecati, replaced: <source lang= → <syntaxhighlight lang= (3), </source> → </syntaxhighlight> (3)
Riga 17:
== Definizione ==
In teoria, un POJO è un oggetto Java non legato ad alcuna restrizione diversa da quelle costrette dalla specifica del linguaggio Java (Java Language Specification). In altre parole, è imperativo che un POJO:
#non estenda delle classi prespecificate, come in<sourcesyntaxhighlight lang="java">public class Foo extends javax.servlet.http.HttpServlet { ...</sourcesyntaxhighlight>
#non implementi delle interfacce prespecificate, come in<sourcesyntaxhighlight lang="java">public class Bar implements javax.ejb.EntityBean { ...</sourcesyntaxhighlight>
#non contenga delle annotazioni prespecificate, come in<sourcesyntaxhighlight lang="java">@javax.persistence.Entity public class Baz { ...</sourcesyntaxhighlight>
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).