Нужна помощь по слоям веб-приложений - PullRequest
0 голосов
/ 06 июня 2011

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

Пока у меня есть следующее

  1. Entity Layer - моделирует бизнес-объекты и используется в приложении

  2. Уровень репозитория - работает с постоянством и всеми вызовами в и из базы данных

  3. Уровень обслуживания - имеет дело с бизнес-требованиями

  4. Уровень контроллера - имеет дело с запросами и только вызывает службы

  5. Просмотр слоя

Также для каждой сущности есть выделенный репозиторий и выделенная служба

У меня следующие вопросы:

  1. Это нормально, если одна Entity Service ссылается на другую Entity Service или должна существовать новая Служба, не привязанная к Entity, которая использует Entity Services? (Это более широкий вопрос: каково взаимодействие между слоями)

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

  3. Должен ли уровень представления иметь доступ к службам, на которые ссылается контроллер? (Для получения некоторых списков, или контроллер должен предоставлять всю информацию, необходимую для представления?

Спасибо

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

1 Ответ

1 голос
/ 06 июня 2011
  1. Я бы сказал, да, служба может сотрудничать с другими службами.
  2. Нет, это ненужное чрезмерное осложнение.
  3. Контроллер действительно является частью View; два идут вместе. Возможно, что представление может вызывать службы, особенно если вы выполняете веб-интерфейс с вызовами AJAX.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...