-1

我有一个由以下三个模块组成的应用程序:

  • 搜索(搜索对象)
  • 列表(显示搜索结果)
  • Painter(允许我编辑对象)- 并不总是加载此模块

(每个对象都是我可以在画家中编辑的图形)。

当我在画家中打开一个对象时,它会添加到画家中已经存在的对象中,我可以移动它并更改它。

我正在使用类似于 EventAggregator 的对象在模块之间进行通信。例如,为了显示搜索结果,我发布了一个由 List 模块捕获的“ShowList”事件(我不确定这是不是最好的方法,如果有人有更好的想法,请发表评论......)。

搜索模块的功能之一要求它在画家中获取所选对象(如果画家可用),我不确定什么是最好的方法......

我想到了这些解决方案:

  1. 每当painter中的选定对象发生更改时,它将发布一个“PainterSelectedObjectChanged”事件,该事件将被搜索模块捕获并存储以供以后使用。

  2. 当搜索模块需要所选对象时,它将发布一个“RequestingPainterSelectedObject”事件,该事件将被画家模块捕获。然后,painter 模块将在 EventArgs 对象中设置“SelectedObject”属性,当发布完成并且我们返回搜索模块时,我们将在 EventArgs 对象中拥有画家选择的对象。

你怎么看?这样做的正确方法是什么?

4

2 回答 2

0

我会说,选项 B。这听起来很常见,也许我没有完全理解它。:)

于 2009-01-15T14:48:26.500 回答
0

我想说,选项A。这听起来很常见,也许我没有完全理解它。:)

于 2009-01-15T10:40:10.837 回答