FAST LANE READER
Este
patrón propone un mecanismo para obtener grandes cantidades de información
utilizando un acceso directo sobre la base de datos.
Para
obtener acceso de sólo lectura a un conjunto de datos que no cambien
rápidamente se utiliza este patrón lector modelo, que no pasa por los EJB y utiliza un Data Access Object
(posiblemente no transaccional) que encapsula el acceso a los datos. El objeto de acceso a datos en el Fast Lane, lector modelo accede a la base de datos para obtener
todos los datos de sólo lectura requeridos de manera eficiente, evitando la
sobrecarga de múltiples EJB accede a la base de datos. Los datos resultantes se transfieren
al cliente a través de un objeto de valor. El valor del objeto también puede
ser almacenado en cache en el servidor para su uso repetido, mejorando aún más
el rendimiento. Las mejores prácticas que no pasa por el vean de entidad capa
de los lotes lee es útil si se requiere una lista de solo lectura de datos.
Por
ejemplo la visualización para la tabla de usuario utilizado detrás de una
fachada o vista ayudante utiliza un DAO para leer un lote de datos en la
entidad directamente desde la fuente de datos.
VENTAJAS
·
Permite
consultas complejas a realizar.
·
Evita la
sobrecarga de acceso a grandes cantidades de datos tabulares a través de la
entidad de capa.
DESVENTAJAS
·
Aprieta el
acoplamiento entre las empresas y lógica de persistencia vean sesión consiente
de su mecanismo de persistencia.
·
Menos
mantenible (lógica de movimientos que es más susceptibles a defectos en la capa
de negocios).
·
Potencial
de datos obsoletos.
·
Ignora la capa
de concurrencia proporcionada por las entidades.
POR QUE UTILIZAR UN LECTOR FAST LANE
·
Permite consultas complejas que se realizan con un
solo bulto leer en contraste con los N + 1
a través de las llamadas requeridas la capa de entidad.
IMPLEMENTACIÓN
Casos de uso que corresponden a
búsquedas que devuelven una colección de objetos.
- cuando se tienen casos de uso que corresponden a búsquedas múltiples y
la eficiencia es un factor importante
EJEMPLO
public List getAllPeople() throws PersonException
{
List peopleList = null;
try {
final PersonDao personDao =
DaoFactory.getPersonDao();
peopleList =
personDao.getAllPeople();
}
catch (final DaoException
daoException) {
throw new PersonException("Could
not load list of people.",
daoException);
}
return
peopleList;
}
CONCLUSIÓN
Este
patrón significa que lee eficientemente los datos que no cambian o aquellos que
cambien lentamente desde el servidor y
muestra todos los datos en una
transferencia.
No hay comentarios:
Publicar un comentario