Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Представьте страничку на шаге 19 которая позволяет вам изменить данные (адрес, данные кредитки или координаты вашей бабушки) которые вы ввели на шаге 1, 2, или 4.
Без рутового контроллера придется завязываться в контроллер конкретного шага
Ну по вашей логике я сегодня должен был утром идти в офис O2 и положить их отдел разработки
Да, именно, должен быть один контроллер — в случе бизнес процесса это должен быть 1 (одна штука) рутовый контроллер процесса. На последней картинке это и показано.
Пример из жизни:
Eсть CMS + Управление проектами.
CMS — это один блок. Управление проектами — второй.
При этом, заказчик хочет привязать проект к клиенту, но т.к. это различные блоки, сделать это невозможно.
Но здесь кроется коварство использования MVC шаблона. Как показано на изображении ниже, велик соблазн ссылаться напрямую с представления (View) модуля 'A' на контроллер (Controller) модуля 'B', с модуля 'B' на модуль 'C', с модуля 'C' на модуль 'D'.
Если текущий экран предполагает, что с него я могу попасть только в Б или С, то хоть убейся — от этих ссылок ты никуда не уйдёшь, это часть интерфейса.
<wizard initial="A">
<view id="A">
<on event="next" to="B"/>
</view>
<view id="B" >
<on event="next" to="C"/>
<on event="previous" to="A"/>
</view>
<view id="C">
<on event="previous" to="B"/>
<on event="finish" to="finish"/>
</view>
<on event="cancel" to="cancel"/>
<final id="finish" />
<final id="cancel" />
</wizard>
Почему бы не вынести бизнес процессы внутри одного приложения в конфигурацию?
Шаблон MVC — это тупик для разработки приложений?