数据映射器模式

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

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

实现 编辑

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

  • PHP
    • Atlas ORM(数据映射器、表格数据网关、查询建造器和PDO包装器)[8]
    • Doctrine2ORM和数据库抽象层)[9]
    • Cycle ORM[10](PHP数据映射器ORM和数据建模引擎)[11]
  • Ruby
    • DataMapper库[13](实际上这个库实现了主动记录设计模式,它的后继者DataMapper 2(现在的ROM[14])致力于实际上实现它所命名的这个设计模式)。

参见 编辑

引用 编辑

  1. ^ Fowler, Martin. Patterns of enterprise application architecture. Addison-Wesley. 2003 [2020-11-08]. ISBN 978-0-321-12742-6. (原始内容存档于2016-12-23). 映射器层在对象和数据库之间移动数据同时保持它们相互独立并独立于映射器自身。 
  2. ^ Bookshelf.js页面存档备份,存于互联网档案馆
  3. ^ TypeORM
  4. ^ Massive.js页面存档备份,存于互联网档案馆
  5. ^ Prisma页面存档备份,存于互联网档案馆
  6. ^ Objection.js页面存档备份,存于互联网档案馆
  7. ^ MikroORM页面存档备份,存于互联网档案馆
  8. ^ Atlas ORM – Atlas. [2020-11-08]. (原始内容存档于2021-01-22). 
  9. ^ Doctrine2 and ActiveRecord – Doctrine2. Doctrine2. [2013-04-02]. (原始内容存档于2013-07-21). 
  10. ^ Cycle页面存档备份,存于互联网档案馆
  11. ^ Cycle ORM – Cycle. [2020-11-08]. (原始内容存档于2020-11-11). 
  12. ^ mincePy
  13. ^ DataMapper页面存档备份,存于互联网档案馆
  14. ^ ROM页面存档备份,存于互联网档案馆
  15. ^ Ecto页面存档备份,存于互联网档案馆

外部链接 编辑