数据映射器模式

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

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

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

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

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

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

Python 
 SQLAlchemy库。
 mincePy库。

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

Elixir 
 Ecto持久化框架。

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

引用 

软件设计模式