Какой слой подходит для размещения функции отправки почты? - PullRequest
1 голос
/ 02 февраля 2011

Я занимаюсь разработкой инфраструктуры веб-приложений Java. В фреймворке применяются типичные 3 уровня: архитектура, презентация / бизнес / интеграция.

Как правило, я думаю, что определение бизнес-уровня - это «бизнес-логин, не зависящий от конкретной реализации персистентного процесса», а уровень интеграции - «конкретная реализация персистентного процесса».

Здесь мне интересно, какой слой подходит для размещения функции отправки почты. Я считаю, что, как правило, бизнес-уровень не должен иметь прямой доступ за пределы системы, поэтому отправка почты должна быть размещена на уровне интеграции, хотя она не имеет доступа к БД или какой-либо персистентности. По сути, такие функции, как чтение файлов конфигурации, тоже одинаковы.

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

P.S. Здесь «отправка почты» не означает такие процессы, как принятие решения об отправке, составление сообщения, выбор места назначения. Я думаю, что это обязанность бизнес-слоя. Здесь «отправка почты» означает только саму процедуру отправки.

Ответы [ 2 ]

1 голос
/ 02 февраля 2011

По моему мнению, бизнес-уровень должен решить, создать почтовое сообщение и уведомить интеграционный уровень об отправке электронной почты (связаться с внешней системой). Фактическая почта должна быть отправлена ​​интеграционным слоем

1 голос
/ 02 февраля 2011

У меня есть business-layer, он содержит полную логику для создания соответствующего сообщения, извлечения соответствующих получателей и, наконец, использования службы для отправки почты, которая инкапсулирует логику, чтобы просто принять отправителя, сообщение и получателей и вернуть статус.1002 *


Изменить после нового добавления в вопрос.

Почтовый модуль должен быть бизнес-сервисом, он должен быть в сервисном слое .Сервисный уровень, который можно использовать повторно.Если у вас большой проект с несколькими приложениями, все они могут использовать этот почтовый модуль из сервисного уровня для отправки почты.

Итак, говоря на вашем языке, почтовый процесс - это подсистема business layer, которая должнабыть повторно использованы.

...