Подтвердить что ты не робот

Должна ли модель или контроллер отвечать за отправку писем?

В веб-приложении MVC я часто отправляю электронные письма.

Я обычно делаю это в контроллере, поскольку я загружаю все свои представления из контроллера (включая просмотры электронной почты).

Теперь, однако, у меня есть код, в котором электронное письмо отправляется с модели.

Какой уровень отправляется по электронной почте? Это имеет значение? Нужно ли быть последовательным?

4b9b3361

Ответ 1

В идеале контроллер должен быть как оператор, который соединяет представление с моделью. Это либо относится к модели, либо к уровню обслуживания.

Я бы сказал, что это относится к слою модели, только если у вас есть объект модели, который несет исключительную ответственность за отправку сообщений электронной почты. Вы не хотите комментировать презентацию и логику, что весь смысл разделения проблем в Model-View-Controller.

Этот тип логики должен находиться в сервисном слое. Затем вы можете использовать инъекцию зависимостей, чтобы ввести службу в контроллер и вызвать EmailSenderService.sendEmail();