Связь между модулями - PullRequest
0 голосов
/ 14 января 2009

У меня есть приложение, которое состоит из следующих трех модулей:

  • Поиск (для поиска объектов)
  • Список (для отображения результатов поиска)
  • Painter (чтобы я мог редактировать объекты) - этот модуль загружается не всегда

(Каждый объект - это фигура, которую я могу редактировать в художнике).

Когда я открываю объект в художнике, он добавляется к объектам, которые уже находятся в художнике, и я могу перемещать и изменять его.

Я использую объект, похожий на EventAggregator, для связи между модулями. Например, чтобы показать результаты поиска, я публикую событие «ShowList», которое перехватывается модулем List (я не уверен, что это лучший способ сделать это, если у кого-то есть идея получше, пожалуйста, прокомментируйте ...).

Одна из функций модуля поиска требует, чтобы он доставлял выбранный объект в художник (если художник доступен), и я не уверен, что будет лучшим способом сделать это ...

Я думал об этих решениях:

  1. Всякий раз, когда выбранный объект в художнике изменяется, он публикует событие PainterSelectedObjectChanged, которое будет перехвачено модулем поиска и сохранено для последующего использования.

  2. Когда выбранный объект нужен поисковому модулю, он публикует событие «RequestingPainterSelectedObject», которое будет перехвачено модулем рисования. Модуль рисования затем установит свойство «SelectedObject» в объекте EventArgs, и когда публикация будет завершена, и мы вернемся в поисковом модуле, у нас будет выбранный объект живописца в объекте EventArgs.

Что ты думаешь? Как правильно это сделать?

Ответы [ 2 ]

0 голосов
/ 15 января 2009

Я бы сказал, вариант Б. Звучит как довольно обычный сценарий, возможно, я не до конца понял его. :)

0 голосов
/ 15 января 2009

Я бы сказал, вариант А. Звучит как довольно обычный сценарий, возможно, я не до конца понял его. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...