¿Por qué se necesita el patrón Repository en NHibernate?

13

Estoy leyendo el su primera aplicación basada en NHibernate .

Si bien el tutorial es bueno y fácil de seguir, me pregunto por qué se usa el patrón Repository.

En los diversos métodos Add , Update , Remove en la implementación ProductRepository , el código es casi idéntico: todos están utilizando transacciones, y la diferencia está en la "carne", es decir, llamada session.Save int el método Add , session.Delete en el método remove . ( La página carece de anclajes HTML, pero puede buscar el código relevante en la página como public void Remove , public void Add )

Ese código simplemente "se siente mal".

¿Por qué el autor utiliza el patrón Repositorio? ¿Es solo para demostrar que usa NHibernate o es necesario o por alguna otra razón?

Ps. Mi experiencia es de Ruby on Rails usando ActiveRecord, así que estoy tratando de entender cómo funciona / se usa NHibernate.

    
pregunta Zabba 06.09.2011 - 10:53

2 respuestas

10

El patrón de repositorio no es obligatorio. En cuanto a todos los demás patrones, es una decisión "arquitectónica" que debe tomar en contra de sus necesidades comerciales. En general, el patrón del repositorio se utiliza para implementar la "Entorancia de persistencia de la entidad" que significa que sus entidades no saben nada sobre cómo persistir en su dispositivo de almacenamiento (base de datos, XML, archivo de texto, etc.). Si, por ejemplo, tiene una dirección de entidad, no contendrá la lógica de persistencia (no encontrará en ninguna parte algo como la dirección.Guardar o dirección.Actualizar) pero pasará su entidad a un método de repositorio que se encarga de persistir cambios

    
respondido por el Massimiliano Peluso 06.09.2011 - 11:03
9

La ventaja de usar el patrón de repositorio es simular su capa de acceso a datos, para que pueda probar el código de su capa de negocios sin llamar al código DAL. Hay otras grandes ventajas, pero esto me parece muy importante.

    
respondido por el Shailesh 26.09.2011 - 07:05

Lea otras preguntas en las etiquetas