Что принадлежит репозитория и что не делает?

Интерфейсы касаются полиморфизма, который по сути связывается с экземплярами объектов, не классами. Поэтому статичный не имеет смысла в контексте интерфейса.

6
задан Jim G. 4 October 2009 в 03:12
поделиться

3 ответа

Я думаю, что наибольшую озабоченность по поводу шаблона репозитория вызывает тот факт, что вы нарушаете принцип единой ответственности. У вашего класса должна быть одна обязанность, например, управление данными в базе данных. У вас должен быть другой класс для файлового ввода-вывода, и вы можете сгруппировать функции в классе на один уровень выше.

Должна быть только одна причина для изменения класса и класс репозитория, который обрабатывает файловый ввод-вывод и db звонков будет два. Изменение макета файловой системы или изменение базы данных.

Изменить

Чтобы ответить на ваш вопрос об изменении, вот как я бы реализовал это в сценарии MVC (это также предполагает, что вы используете какой-то вид внедрение зависимостей, чтобы облегчить жизнь).

3
ответ дан 17 December 2019 в 02:31
поделиться

Недавно я разработал новый репозиторий и боролся с этим тот же вопрос. В итоге я включил свои дополнительные методы в репозиторий.

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

В приведенном выше примере у вас может быть метод «DeleteProductImage» в ProductsService, который будет вызывать ProductsRepository.DeleteImage, а затем также обрабатывать удаление изображений с носителя.

Это сохраняет ваш репозиторий в чистоте и сосредоточены только на логике "DeleteImage", но при этом предоставляют вам единственный метод, который вам нужно вызвать ("

2
ответ дан 17 December 2019 в 02:31
поделиться

Репозиторий предназначен для того, чтобы изолировать приложение от проблем, связанных с тем, как и где хранятся данные, которые оно использует. Исходя из этого, репозиторий является абсолютно подходящим местом для обработки как базы данных, так и файловой деятельности в данном контексте.

1
ответ дан 17 December 2019 в 02:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: