Paso 1: Crear Editorial - Explicación del diseño
Las clases que implementan este paso se presentan en la siguiente figura:
Las clases en rosado pertenecen a la capa de recursos REST, las clases en amarillo a la capa de lógica y las clases en verde a la capa de persistencia.
Las decisiones más importantes del diseño son:
- 1) En la capa de recursos REST, el método POST que se encarga de la creación de un recurso editorial, recibe y devuelve un objeto
EditorialDTO
. La diferencia del objeto que se recibe con el que se devuelve, es que al devolverlo, este objeto ya tiene un id creado automáticamente por la base de datos. Estos objetos son transformados de json en DTOS y viceversa, través de JAX-RS que lo hace de forma automática. - 2) La clase DTO además de tener los atributos que representan los objetos json, contienen la lógica de la conversión entre DTOS y Entities y viceversa. Hay un constructor que recibe un
Entity
y retorna unDTO
y hay un método llamadotoEntity
que convierte elDTO
aEntity
.
El siguiente diagrama de secuencias ilustra los llamados y las conversiones de los datos:
- 3) La capa de lógica no sabe de objetos
DTOs
. Esta capa sólo maneja objetosEntity
. - 4) La capa de lógica válida reglas de negocio. En este ejemplo, se debe verificar que no exista ya (en la base de datos) una editorial con el nombre igual a la que se está intentando crear.
- 5) Si la editorial con ese nombre ya existe, la verificación se hace utilizando un método de la persistencia quien debe ir a buscar en la BD, se debe disparar una excepción. En nuestro ejemplo
BusinessLogicException
. - 6) Si no existe, la lógica invoca a la persistencia para crear la nueva entidad en la BD.
El siguiente diagrama de secuencias ilustra los llamados suponiendo que la editorial no existe.
Para la explicación detallada del código ir a paso-1_código.