Plain Old Java Object
Un POJO (acrónimo de Plain Old Java Object) es una sigla creada por Martin Fowler, Rebecca Parsons y Josh MacKenzie en septiembre de 2000 y utilizada por programadores Java para enfatizar el uso de clases simples y que no dependen de un framework en especial. Este acrónimo surge como una reacción en el mundo Java a los frameworks cada vez más complejos, y que requieren un complicado andamiaje que esconde el problema que realmente se está modelando. En particular surge en oposición al modelo planteado por los estándares EJB anteriores al 3.0, en los que los "Enterprise JavaBeans" debían implementar interfaces especiales.
POJO es una nueva palabra para designar algo viejo, tan viejo como una tarjeta perforada. No existe en Java una nueva tecnología con ese nombre, sino que el nombre existe en el marco de una revalorización de la programación "simplemente orientada a objetos". Esta revalorización tiene que ver también con el éxito de lenguajes orientados a objetos más puros[cita requerida] y sencillos, que empezaron a tomar parte del mercado al que Java apunta, como Ruby y Python.
Un objeto POJO es una instancia de una clase que no extiende ni implementa nada en especial. Por ejemplo, un Servlet tiene que extender de HttpServlet
y sobrescribir sus métodos, por lo tanto no es un POJO. En cambio, si se define una clase 'Persona', con sus atributos privados y sus correspondientes getters y setters públicos, una instancia de esta simple clase es un objeto POJO.
El término sigue la línea de otras siglas similares, como POTS (Plain Old Telephone System) o PODS (Plain Old Data Structures) utilizada para describir a simples "struct" en el contexto de la programación C++.
Con el auge de JSON se utilizan POJO para serializar los objetos en formato json, con bibliotecas como Gson.