Обзор
Я создаю простое веб-приложение, состоящее из холста и элементов на холсте.
Холст поддерживает следующие операции: загрузка, сохранение
Элементы поддерживают следующие операции: перемещение, изменение размера
JavaScript на веб-странице отправляет сообщение на сервер для каждой операции, а сервер отправляет соответствующий ответ.
Мой дизайн

Примечание: стрелка между объектами Canvas и Element должна означать, что объект Canvas содержит список объектов Element.У меня не было правильных символов для диаграммы.
Пример рабочего процесса
- Элемент на холсте перемещается, генерируя сообщение element_moved.
- Фронт-контроллер управляет сеансом и передает сообщение в контроллер холста с правильным объектом canvas.
- Контроллер холста проверяет сообщение и видит, что оно предназначено для элемента на холсте, и передает егона контроллере элемента.
- Контроллер элемента анализирует сообщение и напрямую обновляет соответствующий объект элемента.
Вопрос
Этоиерархическое расположение контроллеров - обычное явление в проектах MVC или я полностью упускаю суть?Я искал несколько часов, но не нашел ни одного сайта, на котором более подробно обсуждается дизайн MVC, чем просто возвращение просмотра страницы.
Моя мотивация заключается в том, что каждый объект, с которым клиент должен взаимодействоватьимеет контроллер, так что если интерфейс изменяется (для поддержки новых методов), то соответствующий контроллер может быть обновлен, не затрагивая другие части проекта.