Должно ли хранилище иметь постоянную функциональность? - PullRequest
1 голос
/ 09 декабря 2011

В книге Фаулера «Шаблоны архитектуры корпоративных приложений» нет упоминания о постоянных возможностях шаблона репозитория. Под «постоянными функциями» я подразумеваю такие функции, которые обновляют, сохраняют, добавляют или удаляют объекты. Просто механизм чистого сопоставления набора доменных объектов.

С другой стороны, давайте взглянем на сообщение в блоге Майка Хэдлоу под названием Использование шаблона IRepository с LINQ to SQL . Существуют конкретные постоянные методы, такие как вставка и удаление.

Так как же следует реализовать шаблон хранилища? Не могли бы вы, ребята, указать мне на хорошие "истинные" реализации репозитория. Я получаю некоторое разочарование по этой теме.

Заранее спасибо! Надеюсь на вашу помощь!

1 Ответ

2 голосов
/ 09 декабря 2011

Репозиторий должен действовать как сбор данных в памяти.Выбранная вами номенклатура, будь то Добавить или Вставить, Удалить или Удалить, Выбрать или Получить, не имеет значения.

Вы можете разделить свой репозиторий на 2 интерфейса, а затем иметь ReadOnlyRepository для получения / выбора данных и WriteRepository для добавления / обновления / удаления данных.Это не важноВажно то, что ваше приложение или бизнес-код использует хранилище для взаимодействия с данными, как если бы они уже были загружены в память, поэтому вам не нужно создавать SQL-запросы, смешанные с бизнес-кодом или кодом приложения.

Обновление

Поскольку мы говорим о шаблоне, не существует ни одного "истинного" интерфейса или реализации репозитория.Может быть много разных реализаций, которые следуют одному и тому же шаблону.

...