Respuesta

5

Esencialmente, su suposición es correcta. El repositorio y los patrones DAO externalizan las preocupaciones de persistencia mientras Active Record los internaliza. De hecho, he visto algunas implementaciones en las que se inyectaban clases de registros activos con una instancia de repositorio que proporcionaba internamente sus problemas de persistencia.

El principal motivo por el cual no se usa el patrón Active Record es simple, los objetos de su dominio no deberían importar cómo (o incluso si) persisten. El patrón de repositorio proporciona ignorancia de persistencia a los objetos de su dominio mediante la externalización de problemas de persistencia y proporcionándolo como un servicio externo.

2

IMO, el patrón Repositorio ayuda a reducir el número de consultas realizadas en la base de datos porque lo entrena para pensar en términos de transacciones y lotes de comandos, mientras que con el patrón Active Record es fácil de dejar de llamar. save(), .fetch(), etc. con abandono imprudente. Las bases de datos pueden ser un cuello de botella lo suficientemente grande en general, no empeorarlo con consultas innecesarias.

Cuestiones relacionadas