Должно ли хранилище иметь постоянную функциональность?
В книге Фаулера "Шаблоны архитектуры корпоративных приложений" нет упоминания о постоянных возможностях шаблона репозитория. Под "постоянными функциями" я подразумеваю такие функции, которые обновляют, сохраняют, добавляют или удаляют объекты. Просто механизм чистого сопоставления набора доменных объектов.
С другой стороны, давайте взглянем на сообщение в блоге Майка Хэдлоу " Использование шаблона IRepository с LINQ to SQL". Существуют конкретные постоянные методы, такие как вставка и удаление.
Итак, как должен быть реализован шаблон хранилища? Не могли бы вы, ребята, указать мне на хорошие "истинные" реализации репозитория. Я получаю некоторое разочарование по этой теме.
Заранее спасибо! Надеюсь на вашу помощь!
1 ответ
Хранилище должно просто действовать как сбор данных в памяти. Выбранная вами номенклатура, будь то Добавить или Вставить, Удалить или Удалить, Выбрать или Получить, не имеет значения.
Вы можете разделить свой репозиторий на 2 интерфейса, а затем иметь ReadOnlyRepository для получения / выбора данных и WriteRepository для добавления / обновления / удаления данных. Это не важно Важно то, что ваше приложение или бизнес-код использует хранилище для взаимодействия с данными, как если бы они уже были загружены в память, поэтому вам не нужно создавать SQL-запросы, смешанные с бизнес-кодом или кодом приложения.
Обновить
Поскольку мы говорим о шаблоне, не существует единственного "истинного" интерфейса или реализации репозитория. Может быть много разных реализаций, которые следуют одному и тому же шаблону.