2015-05-31 1 views
0

Я пытаюсь реализовать уровень бизнес-логики с использованием нескольких вариантов использования для сохранения данных о бронировании автомобиля. Я немного смущен относительно того, где должен быть реализован шаблон хранилища. Должен ли я использовать его в BLL или DAL? Это звучит очень просто, но я теряюсь на этапе проектирования. Если шаблон репозитория не подходит для BLL, то какой из них. Любая помощь/советы приветствуются.Образец репозитория: DAL или BLL

+0

Классы репозитория должны быть частью уровня данных, а уровень бизнес-уровня будет доступ к тем, кто использует абстракцию (интерфейсы). Классы репозитория будут иметь общие операции CRUD. –

ответ

6

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

+0

Спасибо, Филипп, под словом «data layer», вы имеете в виду, Data Access Layer? Один вопрос, который беспокоит меня, - это то, что для Репозитория все в порядке, чтобы иметь такие функции, как «Бронировать GetBooking (строка RegistrationNumber)», нарушит ли он какие-либо хорошие практики? –

+0

Это было бы вполне приемлемо (даже поощрялось). Но я бы подумал об этом. Получает ли GetBooking (строка) или Get (RegistrationNumber) лучший смысл. Я предлагаю, чтобы использование типа RegistrationNumber было лучше. – Alistair

+0

Цените время и силы ребята. Спасибо, что помог мне очистить мой разум! –

Смежные вопросы