Это веб-сайт ASP.NET MVC.
Следуя доменному дизайну, у нас есть сервисный уровень. Наши контроллеры просят классы обслуживания приложений выполнять различные задачи, а затем направлять результаты в представления.
Бизнес-логика осуществляется по классам обслуживания.
Так, например, у меня может быть класс AccountTasks
, который отвечает за регистрацию пользователей, редактирование их предпочтений и т. Д. Теперь мне нужно иметь возможность также автоматически подписывать пользователей на рассылку, как только они подписываются. или обновить их пользовательские настройки (тогда я бы изменил подписку на рассылку).
Таким образом, функция подписки на новостную рассылку тесно связана с регистрацией / изменением учетной записи.
Однако я чувствую, что было бы лучше иметь отдельный класс обслуживания NewsletterTasks
для действий подписки / обновления / отмены подписки.
Но этот класс будет использоваться не контроллером, а классом AccountTasks
.
Итак, рабочий процесс будет выглядеть так:
-> request made to controller action
-> controller calls AccountTasks
-> AccountTasks creates a user acoount
-> AccountTasks calls NewsletterTasks
-> NewsletterTasks subscribes the user to the newsletter
-> AccountTasks returns the result to the controller
-> controller fetches the appropriate view and sends it to the client
В качестве альтернативы, я бы сначала вызвал контроллер AccountTasks
, а затем использовал бы результат NewsletterTasks
. Но при таком подходе я чувствую, что контроллер слишком много знает о рабочем процессе, тогда как он должен просто передавать данные и результаты.
Задачи - это классы службы приложений, проект основан на архитектуре S # arp с некоторыми изменениями Кто может мне помочь - сюда входят соглашения об именах для некоторых вещей.
Можно ли звонить NewsletterTasks
с AccountTasks
? Как бы вы это сделали?