java - programación - spring mvc 4 tutorial español
¿Qué patrón sigue Hibernate? (4)
En su libro "Patrones de arquitectura de aplicaciones empresariales", Martin Fowler habla sobre patrones de persistencia que se encuentran comúnmente en el desarrollo de software y particularmente en relación con los ORM.
¿Hay algún patrón al que Hibernate se adhiera más de cerca?
Hibernate es obviamente un modelo de dominio . Los objetos en ORM son el modelo de dominio, por lo que no puede hacer ORM sin él.
Hibernate hace uso de varios patrones:
- Carga lenta (colecciones proxing)
- Unidad de trabajo (como parte del objeto Session)
- Probablemente el mapa de identidad o algo más sofisticado
- Asignación de metadatos
- Objeto Query para la API Criterion
- todos los patrones estructurales relacionales de objetos
Hibernate no sigue el patrón ActiveRecord. El patrón que Hibernate adhiere más de cerca es el patrón de Datamapper .
Si busca explicidad en los patrones de diseño, entonces podría considerar a Hibernate una API elegante para implementar el Patrón de registro activo :
En ingeniería de software, el patrón de registro activo es un patrón de diseño que se encuentra con frecuencia en el software que almacena sus datos en bases de datos relacionales. Fue nombrado por Martin Fowler en su libro Patterns of Enterprise Application Architecture. La interfaz para dicho objeto incluiría funciones tales como Insertar, Actualizar y Eliminar, además de propiedades que corresponden más o menos directamente a las columnas en la tabla de base de datos subyacente.
El registro activo es un enfoque para acceder a los datos en una base de datos. Una tabla o vista de la base de datos se envuelve en una clase; por lo tanto, una instancia de objeto está vinculada a una sola fila en la tabla. Después de la creación de un objeto, se agrega una nueva fila a la tabla al guardar. Cualquier objeto cargado obtiene su información de la base de datos; cuando se actualiza un objeto, también se actualiza la fila correspondiente en la tabla. La clase contenedora implementa métodos o propiedades de acceso para cada columna en la tabla o vista.