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