POJO (plain old Java object)

Plain Old Java Object (POJO) bezeichnet nichts weiter als eine einfache Java-Klasse ohne komplexe Strukturen, wie diese zum Beispiel bei Enterprise JavaBeans (EJB) genutzt werden. Der Begriff wurde von Martin Fowler geprägt, der bereits unterschiedliche Begriffe für Vorgehensweisen und Sachverhalte mit einem klangvollen Namen belegte, um diesen damit mehr Stärke im Ausdruck zu geben. Die diesbezügliche Hintergrund-Story kann unter dem u.g. Link nachgelesen werden.


Die Problematik der POJOs geht darauf zurück, dass mit der weiteren Geschichte von Java sich eine Vorgehensweise etablierte, die Java-Klassen nicht nur die fachlichen Details zuordnete, sondern in diesen gleichfalls technischen und infrastrukturellen Code implementierte. Als Beispiel können diverse Frameworks oder auch die EJB in der Version 2.x herangezogen werden. Im Vergleich dazu sind POJOs leichtgewichtige Klassen, die ohne zusätzlichen Ballast auskommen und sich nur an der grundlegenden Java-Spezifikation orientieren. Damit sind gemeint:

  • Technischen Elemente jeglicher Form einschließlich technisch motivierter Throws-Klauseln.
  • Die Vorgabe Callback-Interfaces zu implementieren.
  • Die Erweiterung bereits spezifizierter Klassen.
  • Klassen, die bereits spezifizierte Annotationen enthalten.
  • Die Implementierung bereits spezifizierter Interfaces.
Ein anderes in diesem Zusammenhang geprägtes Akronym ist POJI, Plain Old Java Interface. Damit wird ein Java-Interface bezeichnet, welches sich auf die fachlichen Methoden einer Anwendung konzentriert. Die Deklaration von technischen Details oder Strukturen, die sich auf die Infrastruktur einer Anwendung beziehen, ist dabei ausdrücklich ausgeschlossen.

Die Zielstellung von POJOs und POJIs ist es, die Entwicklung von Anwendungen im Enterprise-Umfeld wieder zu vereinfachen. Neben der Java Persistence API (JPA) sind POJOs und POJIs zentrale Elemente in der neuen Spezifikation der Enterprise JavaBeans 3.0, und demonstrieren dort die Leichtigkeit in der Entwicklung von EJBs. Ebenso stehen POJOs bei den Persistenz-Konzepten von Hibernate und Java Data Objects (JDO) im Zentrum. Ein weiteres Beispiel ist auch der Ansatz des Frameworks Spring, bei dem fachliche Klassen als POJOs umgesetzt werden.

http://www.martinfowler.com/bliki/POJO.html

Informationen zum Artikel
Deutsch:
Englisch: plain old Java object - POJO
Veröffentlicht: 16.03.2010
Wörter: 307
Tags: #Java
Links: Akronym, Annotation, Code, EJB (enterprise JavaBeans), Erweiterung