Buenas prácticas globales en la construcción de la capa de negocio

LIBP-0038 (Libro de pautas)

Se deben tener en cuenta las siguientes pautas sobre la construcción de la capa de negocio.

A continuación se realizan una serie de recomendaciones de carácter general en la construcción de la capa de negocio.

Pautas

TítuloCarácter
Tratamiento de los datos entre las capasRecomendada
Manejo de las listas de resultadosRecomendada

Tratamiento de los datos entre las capas

El acceso a datos se realiza mediante DAO (Data Access Object), con ello se obtiene un abstracción sobre el modelo de datos. Solo se accede a los datos a través de métodos definidos en el DAO. Los DAO incluyen otro concepto que es del los DTO (Data Transfer Object). Los DTO son un tipo de objetos que sirven únicamente para transportar datos. EL DTO contiene las propiedades del objeto. Datos que pueden tener su origen en una o más entidades de información. Estos datos son incorporados a una instancia de un JavaBean. Y esta instancia puede ser pasada a través de la aplicación, localmente o, lo que es más importante, puede ser "serializada" y enviada a través de la red, de forma que los clientes puedan acceder a información del modelo desde un solo objeto y mediante una sola llamada.

Un DTO normalmente no provee lógica de negocios o validaciones de ningún tipo. Solo provee acceso a las propiedades del bean. Algunos autores remarcan que el bean debe ser inmutable, dado que sus cambios no deben reflejarse en el sistema. Pero obviamente esto choca con la especificación de los JavaBean, que requiere que todos los atributos privados tengan sus métodos set y get. Es necesario definir un DTO por cada bean que exista en la aplicación.

Con este modelo se obtiene, la separación entre el Controlador y el Modelo. Ante cualquier cambio que se diera en la forma de acceder a los datos, el modelo no se va a modificar ya que recibe el mismo DTO.

Manejo de las listas de resultados

El manejo de las listas de resultados es muy importante en cuestiones de desarrollo. En ocasiones, una consulta puede provocar un volumen importante de resultados, de los que el cliente solo esta interesado en unos pocos para desechar el resto. El coste de procesar todos los objetos es muy alto.

Normalmente las consultas, llevan asociadas unos criterios de selección. Es muy recomendable ordenar la devolución de resultados de manera que no se devuelvan todos los objetos que cumplan el criterio sino sólo un número determinado, en forma de lista paginada, que representa un rango de objetos dentro de una lista.

Para ellos se recomienda el uso del patrón Value List Handler, que permite almacenar los resultados en una caché intermedia e ir presentándoselos al cliente en función de las peticiones que realice.