數據映射器模式

軟體工程中,對象映射器模式(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頁面存檔備份,存於網際網路檔案館

外部連結

編輯