У меня есть вопрос, касающийся структуры приложения MVC. Предположим, мы должны реализовать веб-приложение, состоящее из нескольких модулей, таких как корзина покупок, браузер магазина (конечный пользователь), менеджер магазина (администратор) и так далее.
Конечно, возможно создать один контроллер и использовать маршрутизацию для отправки запросов методу действия определенного контроллера. Однако это сделало бы код довольно запутанным и затруднило бы практику вертикальной структуризации приложения, а именно, чтобы идентифицировать и различить, какие представления, модели и контроллеры задействованы для выполнения определенного требования (пример приведен Phil Haack ).
Другой подход заключается в использовании одного контроллера для каждого раздела приложения, например, один контроллер сделан доступным для операций конечного пользователя, другой - для администратора магазина, другой - для запросов, сделанных отделом отгрузки, и так далее. Недостатком этого подхода является слишком большое количество контроллеров, которые портят ваш код, слишком выделены для конкретных задач и поэтому их трудно использовать повторно.
В соответствии с этими двумя крайними ситуациями, как лучше организовать ваши контроллеры и политики маршрутизации? Используете ли вы структурированный подход или это зависит от типа разрабатываемого вами приложения?
Спасибо
Francesco