Data mapper — Вікіпедія

Data mapper — шаблон проєктування взаємодії з базою даних. Призначений для зменшення взаємного впливу структури об'єкта та структури, яка реально зберігає дані об'єкта. Уперше був запропонований Мартіном Фаулером у 2003 році в книзі Patterns of Enterprise Application Architecture. Згідно з цим шаблоном інтерфейс об'єкта повинен містити методи CRUD, на противагу безпосередній взаємодії з базою даних.

Шаблон Data mapper — це прошарок доступу до бази даних, що забезпечує двосторонню конвертацію даних з об'єкта (в оперативній пам'яті) до бази даних, і з бази даних знов у об'єкт. Шаблон повністю відповідає своїй назві — він полягає у створенні мапи відповідності між полями властивостей об'єкта та полем у БД, у якому зберігається значення властивостей. Таким чином зміна структури в БД вимагає лише зміни самої мапи й не зачіпає основний код проєкту, так само програміст може змінити структуру об'єкта (в певних межах), залишивши базу даних незмінною.

Реалізації

[ред. | ред. код]

Принцип реалізовано у численних фреймворках на різних мовах програмування.

Java/.Net

[ред. | ред. код]
  • Фреймворк MyBatis 
  • Doctrine2 об'єктно-реляційне-відображення (ORM) та прошарок абстракції бази даних [1]

Реалізація

[ред. | ред. код]
public class Customer { 	public int ID { get; set; } 	public string Name { get; set; }  	public Customer(int id, string name) 	{ 		ID = id; 		Name = name; 	} } public class CustomerMapper {  	public Customer GetByID(int id) 	{ 		Db db = ...; 		var record = db.ReadUser(id);  		return new Customer(record.id, record.name); 	}  	public void Save(Customer customer) 	{ 		// враховуємо те що структура об'єкта та його представлення у сховищі можуть відрізнятись 		... 	}  	public void Delete(int id) 	{ 		Db db = ...; 		db.Delete(id); 	} } 

Див. також

[ред. | ред. код]

Посилання

[ред. | ред. код]


Примітки

[ред. | ред. код]
  1. Doctrine2 and ActiveRecord – Doctrine2. Doctrine2. Архів оригіналу за 21 липень 2013. Процитовано 8 серпень 2016.