Data mapper — шаблон проєктування взаємодії з базою даних. Призначений для зменшення взаємного впливу структури об'єкта та структури, яка реально зберігає дані об'єкта. Уперше був запропонований Мартіном Фаулером у 2003 році в книзі Patterns of Enterprise Application Architecture. Згідно з цим шаблоном інтерфейс об'єкта повинен містити методи CRUD, на противагу безпосередній взаємодії з базою даних.
Шаблон Data mapper — це прошарок доступу до бази даних, що забезпечує двосторонню конвертацію даних з об'єкта (в оперативній пам'яті) до бази даних, і з бази даних знов у об'єкт. Шаблон повністю відповідає своїй назві — він полягає у створенні мапи відповідності між полями властивостей об'єкта та полем у БД, у якому зберігається значення властивостей. Таким чином зміна структури в БД вимагає лише зміни самої мапи й не зачіпає основний код проєкту, так само програміст може змінити структуру об'єкта (в певних межах), залишивши базу даних незмінною.
Реалізації
Принцип реалізовано у численних фреймворках на різних мовах програмування.
Java/.Net Фреймворк MyBatis
PHP Doctrine2 об'єктно-реляційне-відображення (ORM) та прошарок абстракції бази даних
Python Бібліотека SQLAlchemy
Ruby Ruby Object Mapper (ROM) , також відомий як DataMapper 2
Реалізація
Див. також Data access object Active record pattern Object relational mapping
Посилання Data Mapper
Примітки