Обязанности уровней обслуживания и репозитория - PullRequest
7 голосов
/ 14 июня 2010

Просто пытаюсь разобраться с обязанностями уровня обслуживания и уровня репозитория при сохранении объекта в моем хранилище постоянных данных.

Мой текущий статус таков:

В моем контроллереЯ создал объект «Примечание» из данных, предоставленных пользователем (из формы).Затем пользователь вызывает «Сохранить» на «NoteService» (который существует посредством внедрения зависимости).

В методе «Сохранить» в «NoteService» я выполняю проверку бизнес-логики, а затем передаю объект «Примечание» в метод «Сохранить» в «NoteRepository».

Затем метод «Сохранить» в «NoteRepository» проверяет, существует ли существующий первичный ключ для этого объекта, и если да, то получает этот объект из БД и обновляет его свойства, используя переданный объект «Примечание», и затем сохраняет его.вернуться к БД.Если первичного ключа нет, объект просто сохраняется в БД, а затем возвращается в службу со вновь созданным первичным ключом.

1 Ответ

4 голосов
/ 14 июня 2010

Ваше разделение интересов звучит довольно хорошо для меня.Мы следуем той же схеме, но, как правило, добавляем еще один слой прямо к слою хранилища.Мы называем это доменным слоем и выполняем всю нашу бизнес-логику.Наш уровень обслуживания - это всего лишь пропуск в наш домен на тот случай, если в будущем нам потребуется опубликовать какие-либо из наших служб в ESB.

Самое большое преимущество того, что вы делаете, - не загромождать весь бизнес и БДлогика в контроллере, что обычно делают многие люди.Вы всегда хотите, чтобы ваши контроллеры были максимально легкими, если вы действительно хотите следовать MVC.

...