"Ahí tienes."

"Lo pensé y decidí enseñarte una pequeña lección más que será muy útil para ti. Hasta que trabajes como programador, es probable que nunca encuentres una terminología especial, así que quiero presentarte varios conceptos comunes ahora".

"Hace unos 10 años, Enterprise J ava  Beans ( EJB ) comenzó a utilizarse ampliamente "  .

"¿Qué significa JavaBeans?"

"JavaBeans básicamente significa granos de café (Java es un tipo de café). Es humor de TI".

"La lógica comercial de un programa tomaba la forma de un grupo de objetos de alto nivel, o beans, que podían intercambiar mensajes, salvarse, encontrarse entre sí por su nombre y mucho más. Por lo general, esto se lograba a través de un super- clase de padres elegante aunque había otros enfoques. El comportamiento de tales objetos estaba altamente regulado ".

"Los tres tipos más famosos de beans EJB son:"

"Un Entity Bean es un bean cuyo propósito es almacenar ciertos datos. Este tipo de bean tiene un mecanismo incorporado para guardarse a sí mismo y a sus campos en una base de datos. Este tipo de objeto se puede destruir y luego volver a crear desde la base de datos. Pero aparte de almacenar datos, no tiene ninguna lógica".

"Un Session Bean es un bean funcional. Cada session bean tiene su propia función. Uno hace una cosa y otro hace otra. Dichos beans funcionan con otros objetos y beans, no con sus propios datos".

Los Session Beans se dividen en dos categorías.

"Un Stateless Session Bean es un bean cuyas variables internas no almacenan datos importantes que necesita para funcionar. Este tipo de bean se puede destruir y luego volver a crear, y realizará su función como antes".

"Un Statefull Session Bean es un bean que almacena internamente los datos que usa cuando trabaja. Si llamamos métodos en dicho bean, entonces cada llamada subsiguiente puede usar algunos de los datos pasados ​​al bean en llamadas anteriores. Aún así, este bean no es lo mismo que un objeto regular".

"Pero usar beans tampoco era tan bueno, así que pronto el péndulo osciló en la dirección opuesta. Y los desarrolladores comenzaron a usar objetos ordinarios con más frecuencia. Incluso se les ocurrió un nombre especial".

"A POJO es un objeto Java simple  y antiguo . Estos objetos no tenían superfunciones y no heredaron superobjetos. Eran simplemente objetos Java normales  .

"Cuando conozca EJB en la práctica, comprenderá la diferencia. En términos generales, un POJO es un cuchillo y un EJB es una navaja suiza que también puede usar para hacer llamadas telefónicas".

"Interesante comparación".

"Sí, y aquí hay una cosa más".

"Con el tiempo, los objetos y las clases comenzaron a especializarse. Como resultado, los desarrolladores identificaron ciertos roles y dieron nuevos nombres a los objetos correspondientes".

"Un objeto de transferencia de datos ( DTO ) es un objeto creado para transportar datos. Estos objetos generalmente tienen dos requisitos. Deben: a) poder almacenar datos, b) ser serializable. En otras palabras, se utilizan solo para transferir datos. ."

"Usted crea un objeto, escribe los datos requeridos de la lógica comercial en él, lo serializa en JSON o XML y lo envía a donde debe ir. O al revés: llega un mensaje, lo deserializa en un objeto DTO y extraer datos de él".

"Una Entidad es un objeto que se almacena en una base de datos. Pero no contienen ninguna lógica comercial. Se podría decir que estos son los datos del modelo comercial".

"También tenemos el objeto de acceso a datos ( DAO ). Un DAO se usa para guardar objetos y recuperarlos de una base de datos. La entidad no hace esto, ya que no tiene ninguna lógica, por lo que no puede guardar cualquier cosa en cualquier lugar".

Ejemplo:

Relación entre una DAO y una entidad
UserEntity user = UserDAO.getUserById("1535");
if (user.getAge() > 18)
{
 user.setMobilization(true);
 UserDAO.save(user);
}
Comentarios
UserEntity is a class that stores user data
UserDAO is a class that retrieves data (UserEntity objects) from the database and stores it there again after modifying it.

"Eso es todo por ahora."

"Aunque esta es una pequeña lección introductoria, aún no podrá comprender más en este momento. Podríamos pasar días hablando sobre cada uno de estos temas y podríamos pasar años cubriendo EJB".

"Pero quiero que al menos puedas imaginar lo que se dice si te encuentras con estas cosas en conversaciones y mensajes, en foros o en una entrevista".

"Hmm. Gracias, Bilaabo. Sí, creo que no conozco suficientes términos técnicos. Nuevamente, muchas gracias".