Циклическая зависимость между «контроллером» и «графическим интерфейсом»

Я пишу сложный графический интерфейс на Java со многими компонентами на нескольких экранах, которые работают поверх общей логики и модели и взаимодействуют с ними. Ясно, что между «gui» и «контроллером / логикой» существуют некоторые циклические зависимости: действия пользователя в графическом интерфейсе перенаправляются контроллеру, который выполняет некоторую задачу, а затем должен отражать эти изменения во всех графических интерфейсах. В фоновом режиме может произойти что-то, что заставит контроллер отправлять обновления графического интерфейса пользователя. И так далее.

Итак, вот мой вопрос. Шаблон слушателя или наблюдателя отлично подходит для отправки обновлений в графический интерфейс. Можно ли заставить мой графический интерфейс напрямую зависеть от конкретного класса контроллера? Почему, почему нет? Есть (и всегда будет) только один такой контроллер. Существует как дюжина вызовов контроллера, которые необходимы графическому интерфейсу пользователя для опроса состояния и выполнения действий - мне не нравится идея нескольких тривиальных интерфейсов обратного вызова, которые всегда будут иметь только одну реализацию, ни один гигантский интерфейс обратного вызова для всех. виды действий.

6
задан Konrad Garus 2 November 2011 в 20:52
поделиться