Просто пытаясь получить мою голову вокруг обязанностей уровня служб и слоя репозитория при сохранении объекта к моему хранилищу персистентности.
Мой ток под положением - это:
В моем контроллере я создал объект "Примечания" из данных, отправленных пользователем (от формы). Пользователь затем звонит, "Сохраняют" на "NoteService" (который является там через внедрение зависимости).
В рамках метода "Сохранения" на "NoteService" я выполняю свою проверку бизнес-логики и затем передаю объект "Примечания" методу "Сохранения" "NoteRepository".
Метод "Сохранения" "NoteRepository" затем проверяет, чтобы видеть, существует ли существующий первичный ключ на этом объекте и раз так затем get's, которые возражают от дб и обновлений, это - свойства с помощью объекта "Примечания", через который проходят, и он затем сохранил назад к дб. Если нет никакого первичного ключа затем, объект просто сохраняется к дб и тогдашнему возвращенному к сервису с, он недавно создал первичный ключ.
Ваше разделение проблем для меня звучит неплохо. Мы следуем той же схеме, но стараемся добавить еще один слой прямо около слоя репозитория. Мы называем это уровнем домена и выполняем на нем всю нашу бизнес-логику. Уровень нашего сервиса - это просто переход к нашему домену на тот случай, если нам понадобится опубликовать какие-либо наши сервисы в ESB в будущем.
Самым большим преимуществом того, что вы делаете, является то, что вы не загромождаете всю бизнес-логику и логику БД в контроллере, как это делают многие люди. Вы всегда хотите, чтобы ваши контроллеры были как можно более легкими, если вы действительно хотите следовать MVC.