README for DataMapper

This commit is contained in:
Dominik Liebler
2013-09-24 13:11:41 +02:00
parent fde52def3c
commit 5efa752611
2 changed files with 19 additions and 19 deletions

18
DataMapper/README.md Normal file
View File

@@ -0,0 +1,18 @@
# Data Mapper
## Purpose
A Data Mapper, is a Data Access Layer that performs bidirectional transfer of
data between a persistent data store (often a relational database) and an in
memory data representation (the domain layer). The goal of the pattern is to
keep the in memory representation and the persistent data store independent of
each other and the data mapper itself. The layer is composed of one or more
mappers (or Data Access Objects), performing the data transfer. Mapper
implementations vary in scope. Generic mappers will handle many different domain
entity types, dedicated mappers will handle one or a few.
The key point of this pattern is, unlike Active Record pattern, the data model follows Single Responsibility Principle.
## Examples
* DB Object Relational Mapper (ORM) : Doctrine2 uses DAO named as "EntityRepository"

View File

@@ -3,25 +3,7 @@
namespace DesignPatterns\DataMapper;
/**
* DataMapper pattern
*
* Purpose:
* A Data Mapper, is a Data Access Layer that performs bidirectional transfer of
* data between a persistent data store (often a relational database) and an in
* memory data representation (the domain layer). The goal of the pattern is to
* keep the in memory representation and the persistent data store independent of
* each other and the data mapper itself. The layer is composed of one or more
* mappers (or Data Access Objects), performing the data transfer. Mapper
* implementations vary in scope. Generic mappers will handle many different domain
* entity types, dedicated mappers will handle one or a few.
* (FROM http://en.wikipedia.org/wiki/Data_mapper_pattern)
*
* The key point of this pattern is, unlike Active Record pattern, the datamodel
* follows Single Responsibility Principle.
*
* Examples:
* - DB Object Relational Mapper (ORM) : Doctrine2 uses DAO named as "EntityRepository"
*
* class UserMapper
*/
class UserMapper
{