общие службы в многоуровневой архитектуре - PullRequest
1 голос
/ 19 сентября 2011

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

  1. Презентация
  2. Бизнес
  3. Настойчивость

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

У меня есть MessageService, который отправляет сообщения пользователям. Всякий раз, когда происходит существенное изменение в состоянии объекта, все связанные пользователи должны быть уведомлены об изменении. Это означает, что Служба на бизнес-уровне, которая идентифицировала изменение, должна отправлять, используя MessageService для отправки сообщений. Но messageService сам по себе находится на бизнес-уровне, поэтому никакой другой сервис из этого уровня не должен получать к нему доступ.

Так как же мы можем использовать MessageService, не нарушая архитектуру кода?

1 Ответ

0 голосов
/ 19 сентября 2011

Уровень представления (или Верхний уровень) означает не только пользовательский интерфейс, это может быть что угодно, что потребляет сервисы в системе. т.е. запланированное задание может находиться на верхнем уровне (может быть, вы не хотите называть его уровнем представления). В вашем случае я считаю, что MessageService должен быть на верхнем уровне, поскольку он использует другие службы в системе. Например, если вы пишете веб-сервис, он должен быть выше уровня сервиса, но вы можете захотеть, чтобы он назывался по-другому.

...