¿En qué se diferencia el patrón del Mapeador de Datos del Patrón del Repositorio?


Encontré dos patrones que parecen tener el mismo objetivo - ¿cuál es la diferencia?

Http://martinfowler.com/eaaCatalog/dataMapper.html

Http://martinfowler.com/eaaCatalog/repository.html

Author: bitek, 2012-11-25

1 answers

[el repositorio es] otra capa de abstracción sobre la asignación capa donde se concentra el código de construcción de la consulta.

El DataMapper asegura que el lado DB de la cerca no necesita saber sobre los detalles de su lógica de negocio y cómo los datos se mantienen en memoria por sus objetos de negocio y su lado de negocio de la cerca no necesita saber cómo se almacenan los datos.

Para ilustrar, considere que sus datos se mantienen en la base de datos como un conjunto de filas, digamos cada la fila representa un artículo en tu tienda. En el lado de la memoria, es posible que desee mantener esa información no como una lista de StoreItem sino como dos listas, una para los artículos que están en stock y otra para los artículos agotados. Sería el trabajo de DataMapper manejar la transición entre una lista y dos listas.

Puede complicar las cosas agregando listas de otros objetos y herencia en el lado comercial de la cerca. El 'DataMapper' tendría que traducir hacia y desde esa representación a la DB relacional.

El 'Repositorio' proporciona la funcionalidad "SELECT * FROM table WHERE condition" al lado del negocio. Usted proporciona un filtro y devolverá una colección de objetos que coincida con ese filtro.

En resumen: el 'DataMapper' se ocupa de objetos individuales, el 'Repositorio' se ocupa de colecciones de objetos y amplía la funcionalidad proporcionada por el 'DataMapper'.

 39
Author: Andrei,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-27 07:45:40