Когда сохранять ваши бизнес-объекты в ваших классах услуг - PullRequest
0 голосов
/ 13 августа 2010

У меня есть метод в моем сервисе, где я создаю несколько сущностей, внутри метода, который я вызываю метод Add моего репозитория, так что сущности сохраняются при вызове моего метода save, если я должен вызвать мой метод Save вне класса обслуживания или внутри метод, в котором я добавляю сущности в текстовые данные?

Ответы [ 2 ]

1 голос
/ 13 августа 2010

Сервисный класс должен стремиться быть автономным и должен позаботиться о вызове своего собственного метода save () для репозитория, который он использует.Таким образом, это позволяет абстрагировать хранилище от своих потребителей.Что, если он решит отказаться от хранилища, например?Если вызываемый отвечает за сохранение (), то вызываемый () тоже должен измениться.Это приведет к хрупкости кода.

Однако транзакции - это другое дело.

Класс обслуживания должен участвовать в глобальной транзакции, если она уже была запущена вызываемой стороной.В отсутствие глобальной транзакции класс обслуживания должен начинать и заканчивать свою собственную транзакцию.Следовательно, метод save () будет фактически «фиксироваться» только в конце транзакции, независимо от того, был ли он запущен самим классом обслуживания или вызываемым пользователем.

0 голосов
/ 13 августа 2010

Я бы спросил, в ответ на что вы создаете некоторые сущности? Скорее всего, единственная причина - в конечном итоге. По определению ваш класс обслуживания будет гораздо лучшим местом для запуска процесса сохранения. Объекты в вашем контексте данных должны интересоваться только ответом на команды, поступающие от вашего сервиса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...