2011-02-12 30 views
9

La gente me ha gritado, que debería siempre utilizar el patrón de repositorio, lo que he hecho durante bastante tiempo ... Ahora me pregunto si hay alguna alternativa decente para este patrón en absoluto?¿Alternativas al patrón del repositorio?

+0

Interesante. ¿Estás preguntando por curiosidad o porque no estás satisfecho con eso? Si esto último, ¿por qué? – anon

+0

@anon - curiosidad :) - Tratando de averiguar qué otras alternativas hay, ya que el patrón de repositorio parece ser el más utilizado (y casi el único). – ebb

Respuesta

3

Bueno, está el patrón Objeto de acceso a datos, pero a menudo se encuentra en la parte superior del repositorio, y sirve para envolver consultas complejas para que puedan ser llamadas simplemente como un método único.

Repository proporciona una interfaz estándar en su base de datos, y DAO expone las consultas estándar, que es por lo que ambas funcionan muy bien; DAO reenvía llamadas específicas al repositorio. Por supuesto, puede elegir no utilizar un repositorio en su DAO. Puede abrir una conexión a su base de datos y ejecutar las consultas directamente, o utilizar una puerta de enlace de datos de tabla, pero creo que la razón por la que la mayoría de la gente prefiere repositorio es porque es bastante más limpio que esas dos opciones, aunque no deberían gritar a ti :)

http://en.wikipedia.org/wiki/Data_access_object

en los programas informáticos, un objeto de acceso a datos (DAO) es un objeto que proporciona una interfaz abstracta en cierta tipo de base de datos o la persistencia mecanismo, proporcionando algunos específicos operaciones sin exponer detalles de la base de datos. Proporciona una asignación de desde las llamadas a la aplicación a la capa de persistencia . Este aislamiento separa las preocupaciones de lo que los datos accede a las necesidades de la aplicación, en términos de objetos de dominio específico y tipos de datos (la interfaz pública de la DAO), y cómo estas necesidades puede ser satisfecho con un DBMS específicos, esquema de base de datos, etc. (la implementación del DAO). Este patrón diseño es igualmente aplicable a la mayoría de los lenguajes de programación, la mayoría de tipos de software con persistencia necesidades y la mayoría de los tipos de base de datos, pero se asocia tradicionalmente con aplicaciones Java EE y con bases de datos relacionales que se accede a través de la API JDBC debido a su origen en Sun Mejores prácticas de Microsystems directrices [1] ("Patrones de Core J2EE") para esa plataforma.

+0

Gracias por su respuesta :) - Como dijo, DAO está sentado "en la cima" del repositorio y, por lo tanto, es muy similar a un repositorio. ¿Conoces algún beneficio de solo usar DAO en lugar de un Repositorio? – ebb

+0

Hay al menos otras dos opciones en mi respuesta editada, pero diría que el repositorio es, con mucho, el más limpio, especialmente si usa C# y tiene acceso a LINQ o Entity framework que proporcionan un tipo de colección IQueryable de ejecución diferida . –