Я пытаюсь выяснить, какие уровни нужны веб-приложению для четкого разделения интересов.
Я работаю со средними и большими приложениями с объектами, которые часто взаимодействуют друг с другом.
Пока у меня есть следующее
Entity Layer - моделирует бизнес-объекты и используется в приложении
Уровень репозитория - работает с постоянством и всеми вызовами в и из базы данных
Уровень обслуживания - имеет дело с бизнес-требованиями
Уровень контроллера - имеет дело с запросами и только вызывает службы
Просмотр слоя
Также для каждой сущности есть выделенный репозиторий и выделенная служба
У меня следующие вопросы:
Это нормально, если одна Entity Service ссылается на другую Entity Service или должна существовать новая Служба, не привязанная к Entity, которая использует Entity Services? (Это более широкий вопрос: каково взаимодействие между слоями)
Если между хранилищем и службами существует другой слой, например, диспетчер (выделенный для сущности, содержащий бизнес-логику, относящуюся к этой сущности, точно так же, как служба в исходной настройке, но только используемые, но другие службы) и уровень сервиса, который ссылается на уровень менеджера? (хотя это звучит слишком сложно, но если у кого-то есть аргументы для уровня менеджера и уровня сервиса, пожалуйста, скажите мне)
Должен ли уровень представления иметь доступ к службам, на которые ссылается контроллер? (Для получения некоторых списков, или контроллер должен предоставлять всю информацию, необходимую для представления?
Спасибо
PS: Я мог бы задавать больше вопросов, когда читаю ответы, если я считаю, что они важны, я обновлю основной пост.
PS2: Буду признателен, если вы поделитесь личным опытом по этому вопросу.