Активный шаблон записи

Концепция в программной инженерии

В программной инженерии шаблон активной записи является архитектурным шаблоном . Он встречается в программном обеспечении, которое хранит объектные данные в памяти в реляционных базах данных . Он был назван Мартином Фаулером в его книге 2003 года Patterns of Enterprise Application Architecture . [1] [2] Интерфейс объекта, соответствующего этому шаблону, будет включать такие функции, как Insert, Update и Delete, а также свойства, которые более или менее напрямую соответствуют столбцам в базовой таблице базы данных.

Шаблон активной записи — это подход к доступу к данным в базе данных . Таблица или представление базы данных оборачиваются в класс . Таким образом, экземпляр объекта привязывается к одной строке в таблице. После создания объекта новая строка добавляется в таблицу при сохранении. Любой загруженный объект получает свою информацию из базы данных. При обновлении объекта соответствующая строка в таблице также обновляется. Класс-оболочка реализует методы доступа или свойства для каждого столбца в таблице или представлении.

Этот шаблон обычно используется инструментами сохранения объектов и в объектно-реляционном отображении (ORM). Обычно внешние ключевые связи будут представлены как экземпляр объекта соответствующего типа через свойство.

Реализации

Реализации этой концепции можно найти в различных фреймворках для многих сред программирования. Например, если partsв базе данных есть таблица со столбцами name(тип строки) и price(тип числа), а шаблон Active Record реализован в классе Part, то псевдокод

часть = новая часть () часть . имя = "Образец детали" часть . цена = 123 . 45 часть . сохранить ()       

создаст новую строку в partsтаблице с заданными значениями и примерно эквивалентна команде SQL

ВСТАВИТЬ В детали ( название , цена ) ЗНАЧЕНИЯ ( 'Образец детали ' , 123.45 ) ;       

И наоборот, класс можно использовать для запроса к базе данных:

b = Часть . find_first ( "имя" , "коробка передач" )   

Это найдет новый Partобъект на основе первой совпадающей строки из partsтаблицы, столбец которой nameимеет значение "gearbox". Используемая команда SQL может быть похожа на следующую, в зависимости от деталей реализации SQL базы данных:

SELECT * FROM parts WHERE name = 'gearbox' LIMIT 1 ; -- MySQL или PostgreSQL          

Критика

Большие файлы

Поскольку данные и методы доступа к базе данных находятся в одном файле, эти файлы в конечном итоге становятся больше.

Принцип единой ответственности и разделения интересов

Еще одна критика шаблона активной записи заключается в том, что из-за сильной связи взаимодействия с базой данных и логики приложения объект активной записи не следует принципу единой ответственности и разделения интересов . Это противоречит многоуровневой архитектуре , которая должным образом решает эти проблемы. [ требуется цитата ] [ требуется пояснение ] Из-за этого шаблон активной записи лучше всего и чаще всего используется в простых приложениях, которые представляют собой формы поверх данных с функциональностью CRUD , или только как часть архитектуры. [ требуется цитата ] Обычно этой частью является доступ к данным, и поэтому несколько ORM реализуют шаблон активной записи.

Смотрите также

Ссылки

  1. ^ P из каталога EAA - Активная запись
  2. ^ Фаулер, Мартин (2003). Модели архитектуры корпоративных приложений. Addison-Wesley. ISBN 978-0-321-12742-6.
Получено с "https://en.wikipedia.org/w/index.php?title=Active_record_pattern&oldid=1182878645"