数据映射器模式

在软件工程中，对象映射器模式（data mapper pattern）是一种架构模式。它在Martin Fowler的2003年著《企业应用架构的模式》书中命名。符合这个模式的对象的接口将包括函数比如创建、读取、更新和删除，它们对表示数据存储中领域实体类型的对象进行操作。

数据映射器，是在持久化数据存储（经常是关系数据库），与内存中数据表示（业务领域层）之间，进行双向转移的数据访问层。这个模式的目标是，保持内存中表示和持久化数据之间相互独立，并独立于数据映射器自身。数据访问层是由一个或多个映射器（或数据访问对象）构成，它们进行数据转移。映射器实现在范围上有所不同。通用映射器将处理很多不同的领域实体类型，专用映射器只处理一种或一些。

 实现 
这个概念的实现可在很多编程语言的各种框架中见到：

Java/.NET
 MyBatis持久化框架。
 Hibernate（NHibernate）持久化框架。

Node.js/TypeScript
 Bookshelf.js库Bookshelf.js 。
 TypeORM库TypeORM。
 Massive.js库Massive.js 。
 Prisma库Prisma 。
 Objection.js库Objection.js 。
 MikroORM库MikroORM 。

PHP
 Atlas ORM（数据映射器、表格数据网关、查询建造器和PDO包装器）。
 Doctrine2（ORM和数据库抽象层）。
 Cycle ORMCycle （PHP数据映射器ORM和数据建模引擎）。

Python
 SQLAlchemy库。
 mincePy库mincePy。

Ruby
 DataMapper库DataMapper （实际上这个库实现了主动记录设计模式，它的后继者DataMapper 2（现在的ROMROM ）致力于实际上实现它所命名的这个设计模式）。

Elixir
 Ecto持久化框架Ecto 。

 参见 
 主动记录模式
 对象关系映射

引用 

外部链接
Martin Fowler对数据映射器的定义 

Category:软件设计模式