Loading AI tools
З Вікіпедії, вільної енциклопедії
Data mapper — шаблон проєктування взаємодії з базою даних. Призначений для зменшення взаємного впливу структури об'єкта та структури, яка реально зберігає дані об'єкта. Уперше був запропонований Мартіном Фаулером у 2003 році в книзі Patterns of Enterprise Application Architecture. Згідно з цим шаблоном інтерфейс об'єкта повинен містити методи CRUD, на противагу безпосередній взаємодії з базою даних.
Шаблон Data mapper — це прошарок доступу до бази даних, що забезпечує двосторонню конвертацію даних з об'єкта (в оперативній пам'яті) до бази даних, і з бази даних знов у об'єкт. Шаблон повністю відповідає своїй назві — він полягає у створенні мапи відповідності між полями властивостей об'єкта та полем у БД, у якому зберігається значення властивостей. Таким чином зміна структури в БД вимагає лише зміни самої мапи й не зачіпає основний код проєкту, так само програміст може змінити структуру об'єкта (в певних межах), залишивши базу даних незмінною.
Принцип реалізовано у численних фреймворках на різних мовах програмування.
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);
}
}
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.