Jump to content

Шаблон активной записи

(Перенаправлено с ActiveRecord )

В разработке программного обеспечения шаблон активной записи является архитектурным шаблоном . Он встречается в программном обеспечении, которое хранит данные объектов в памяти в реляционных базах данных . Он был назван Мартином Фаулером в его книге «Шаблоны архитектуры корпоративных приложений» 2003 года . [ 1 ] [ 2 ] Интерфейс объекта, соответствующего этому шаблону, будет включать такие функции, как «Вставка», «Обновление» и «Удалить», а также свойства, которые более или менее напрямую соответствуют столбцам в базовой таблице базы данных.

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

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

Реализации

[ редактировать ]

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

part = new Part()
part.name = "Sample part"
part.price = 123.45
part.save()

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

INSERT INTO parts (name, price) VALUES ('Sample part', 123.45);

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

b = Part.find_first("name", "gearbox")

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

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

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

[ редактировать ]

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

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

[ редактировать ]

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

См. также

[ редактировать ]
  1. ^ P каталога EAA - Активная запись
  2. ^ Фаулер, Мартин (2003). Шаблоны архитектуры корпоративных приложений . Аддисон-Уэсли. ISBN  978-0-321-12742-6 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9f04d78b81288deb25d8d9978848b786__1698783480
URL1:https://arc.ask3.ru/arc/aa/9f/86/9f04d78b81288deb25d8d9978848b786.html
Заголовок, (Title) документа по адресу, URL1:
Active record pattern - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)