¿Cuál es la diferencia entre un objeto de acceso a datos y un registro activo? Parecen ser lo mismo, ya que ambos construyeron una capa entre la aplicación y la capa de persistencia, y abstraen el acceso directo a la base de datos utilizando consultas SQL.Diferencia entre Active Record y DAO?
Respuesta
Objeto de acceso a datos (DAO) se refiere a un objeto en su capa de datos responsable de persistir una entidad separada en su dominio. Active Record es híbrido cuando la clase que contiene los valores de una sola fila de una tabla también es responsable de las consultas, actualizaciones, inserciones y eliminaciones de esa tabla. El patrón de diseño Active Record significa que su objeto tiene una asignación de uno a uno con una tabla en su base de datos.
A Objeto de acceso a datos (DAO) es una interfaz dedicada a la persistencia de un objeto de modelo/dominio a una fuente de datos, y no a cualquier objeto en la capa de datos. Aquí hay un reference.
El patrón ActiveRecord funciona de manera similar, pero coloca los métodos de persistencia en el objeto modelo en sí, mientras que el DAO define una interfaz discreta. La ventaja del patrón DAO es:
Su fácil de definir otro estilo de persistencia, por ejemplo, pasar de una base de datos a la nube, sin cambiar la impelementation subyacente, mientras que la interfaz externa sigue siendo la misma, por lo tanto no afecta a otra clases
Las preocupaciones de persistencia están moduladas lejos de las preocupaciones principales del objeto modelo.
La ventaja del patrón ActiveRecord es la simplicidad.
- 1. ¿Cuál es la diferencia entre {active: "yes"} y {"active": "yes"}?
- 2. codeigniter active record where, or_where?
- 3. attr_accessible in rails Active Record
- 4. ¿Cuáles son las diferencias entre el patrón Active Record y Repository?
- 5. Rails Active Record translation: Auto capitalize/downcase?
- 6. Obteniendo código SQL actual CodeIgniter Active Record
- 7. CodeIgniter - Active Record - sql - complejo unen
- 8. Ruby on Rails Active Record Attribute Introspection
- 9. Cómo desactivar auto_increment en Rails Active Record
- 10. Diferencia entre NativeGuid y Guid en Active Directory
- 11. Diferencia entre mensajes pendientes y Enqueue Counter en Active MQ?
- 12. ¿Cómo implementar la herencia Active Record en Ruby on Rails?
- 13. Rails Active Record seleccione padre e hijo como un resultado
- 14. my_object.save (falso) no omite REALMENTE mis validaciones de Active Record
- 15. ¿Qué significa Doctrine Add Above Active Record - CodeIgniter?
- 16. ¿Utiliza generadores Active Record después de la instalación de Mongoid?
- 17. Actualización con el límite 1 en codeigniter use active record
- 18. Active Record has_many genera sql con clave foránea IS NULL
- 19. ¿Hay un archivo de traducción inglés predeterminado para Active Record?
- 20. Data Mapper es una tendencia más moderna que Active Record
- 21. Rails Active Record find (: all,: order =>) issue
- 22. cómo usar IN & Between Clause en YII ACtive Record?
- 23. Rieles: error constante no inicializado en Active Record destroy
- 24. fin Active Record por el tamaño del grupo
- 25. problema con los "count_all_results" y "dónde" con Active Record en CodeIgniter
- 26. Xcode iPhone - Base SDK, diferencia Active SDK?
- 27. Creación dinámica de nuevos modelos de Active Record y tablas de base de datos
- 28. ¿Cuáles son los pros y los contras de usar Castle Active Record vs Straight NHibernate?
- 29. ¿Qué patrón se ajusta entre una fachada y un DAO?
- 30. patrón y relaciones dao
Creo que su primera viñeta es inexacta. Tal vez en algunas implementaciones, pero en otros es completamente posible cambiar el mecanismo de persistencia (incluso en tiempo de ejecución) relacióndb, archivo plano o servicio web sin cambiar la interfaz ... especialmente si esa interfaz está bien diseñada (es decir, es solo crear, leer , actualizar, eliminar). La diferencia es que (una vez más, dependiendo de la implementación ... ya que estos rasgos se pueden mezclar con muchos idiomas ...) – Mainguy
@Mainguy Sí, si el lenguaje proporciona mezclas sin esfuerzo y dinámicas (no estáticas) se podrían cumplir los objetivos DAO ya por ActiveRecord. –