POJO
aus Wikipedia, der freien Enzyklopädie
POJO ist eine Abkürzung für Plain Old Java Object, also ein „ganz normales“ Objekt in der Programmiersprache Java.
Der Ausdruck wurde im September 2000 von Martin Fowler, Rebecca Parsons und Josh MacKenzie geprägt, um diese von mit vielfältigen externen Abhängigkeiten belasteten Objekttypen zu unterscheiden. Solche externen Abhängigkeiten können beispielsweise zwingend zu implementierende Schnittstellen, einzuhaltende Namenskonventionen, oder notwendige Annotationen sein. Ein POJO ist durch die gewonnene Unabhängigkeit leichter wart- und wiederverwendbar.
Der Begriff wird vor allem im Zusammenhang mit Object-Relational-Mapping-Konzepten und -Tools wie Hibernate verwendet, bei denen das Domain Model aus POJOs aufgebaut werden kann, während im Gegensatz dazu bei Entity Beans umfangreiche Konventionen einzuhalten sind.
Eine weitere Domäne, in der der Begriff POJO eingesetzt wird, ist die Welt der Inversion-of-Control-Container wie Spring oder PicoContainer. Auch hier sollen „einfache“ Java-Objekte zum Einsatz kommen, während externe Abhängigkeiten außerhalb dieser vom Container aufgelöst werden.
Java Beans sind streng genommen keine POJOs, da auch die getter/setter-Konvention (Sun nennt diese Namenskonvention gerne „design pattern“) nicht zum Sprachumfang gehören, sondern zum davon unabhängigen Komponentenmodell. Auch EJB 3.0 und JDO sind auf den POJO-Zug aufgesprungen, folgen dem Prinzip aber nur näherungsweise.
Immer häufiger wird auch das analog gebildete Akronym POJI (Plain Old Java Interface) für Interfaces eingesetzt. Es beschreibt eine nicht durch technischen oder infrastrukturellen Quelltext "verschmutzte" Java-Schnittstelle, was beispielsweise bei EJB ab der Version 3.0 zu finden ist.