Вопрос

Просто пытаясь забрать голову вокруг обязанностей сервисного слоя и слоя репозитория при сохранении объекта к моему магазину настойчивости.

Мой нынешний подряд это:

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

В рамках метода «Сохранить» на «Notevice» я выполняю валидацию My Business Logic, а затем пропустите объект «Примечание» к методу «Сохранить» «NotePOSIORY».

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top