¿Cuál es la diferencia entre el patrón de repositorio y el patrón de fachadas?

9

Siempre he usado el patrón de repositorio en mis aplicaciones. Pero he visto que muchas personas usan fachadas en lugar del repositorio para la convención de nomenclatura, pero creo que la operación es la misma. ¿Por qué hay esta diferencia? ¿Hay una diferencia real entre ellos o no?

Mirko
fuente

Respuestas:

11

Una fachada es más general que un repositorio.

Una fachada puede aplicarse a cualquier cosa que no esté basada en la persistencia, mientras que se supone que un repositorio encapsula el acceso a una fuente subyacente y lo hace ver como una fuente de datos en memoria.

Las fachadas son para crear una interfaz simple para alguna otra interfaz complicada.

Oded
fuente
Por lo tanto, el repositorio está diseñado para comunicarse con la capa de datos y las fachadas son más genéricas que esto. por ejemplo, las fachadas pueden realizar otras operaciones, pero la estructura está diseñada como un repositorio, ¿verdad?
Mirko
1
@MirkoPastorelli - puede. Un ejemplo de una fachada sería dar un único punto de entrada para el código que realmente tiene que lidiar con varios subsistemas.
Oded
44
@MirkoPastorelli: un repositorio no está diseñado para comunicarse con la capa de datos, está diseñado para envolver la comunicación con una capa de datos y "abstraerlo" del usuario del repositorio. (por lo tanto, uno puede, por ejemplo, proporcionar un repositorio falso para fines de prueba que solo proporciona datos de prueba codificados y no tiene otras dependencias). Desde este punto de vista, un repositorio no es más que una forma específica de fachada.
Doc Brown