martes, 9 de septiembre de 2014

Active records vs DAO



Cuando debemos almacenar datos nos surge la duda existencial donde meto los métodos que guardan los datos? Para resolver este problema existen 2 patrones muy utilizados:

Active record o registros activos es un patrón que dice que el objeto es encargado de auto guardarse, cosa que no es muy lógica pero es así. Este patrón tiene varias desventajas, la más importante es que el modelo queda "sucio" con el modo de almacenar los datos. Este es el patrón que utiliza rails para acceder a base de datos.

DAO, o objeto para acceso de datos (la traducción se debería checkear) Este patrón indica que el objeto no tiene la responsabilidad de guardarse, sino que existe otro objeto que es encargado de guardar, y recuperar datos. Este patrón es más flexible y abstrae a los objetos del modo y donde se guarden.

Obviamente que no todos los problemas son iguales, por lo tanto cada patrón tiene su punto fuerte, si la idea es hacer algo flexible que abstraiga del modo de guardarse, el patrón DAO es el mejor (y mi preferido). Ahora bien la aplicación es pequeña y no existe necesidad de cambiar el almacén de datos. active record puede ser una solución.