Repaso
English

¿Qué problema resuelve el patrón Repository?

Opciones

  1. El control de versiones del código fuente de un proyecto
  2. Ocultar la persistencia detrás de una interface tipo colección (Opción correcta)
  3. Guardar en caché respuestas HTTP para reducir la carga del servidor
  4. Gestionar las dependencias de paquetes entre módulos

Respuesta

Ocultar los detalles de persistencia detrás de una interface tipo colección para que la lógica de dominio no dependa del ORM ni del SQL

Por qué

Un repository es una clase como UserRepository con métodos simples: get(id), add(user), list_active(). Todo el SQL o el código del ORM vive dentro.

La lógica de negocio solo habla con el repository, así que no le importa si los datos vienen de PostgreSQL, de una API o de un diccionario en memoria.

En los tests lo cambias por un repository en memoria: rápido y sin base de datos.

Recuerda

Repository = una puerta limpia entre la lógica de negocio y la base de datos.

Términos clave

Practica esta pregunta en Repaso