【发布时间】:2011-07-13 03:00:06
【问题描述】:
我正在按照 MVP 模式设计一个 Winforms MDI 应用程序,但我遇到了一些与我的应用程序不同部分之间的通信相关的问题。
这是此应用程序的简单图片: 1 - 左侧是树视图 2-中间有一个绘图组件 3-在右边,一个“财产”表格。 这 3 个部分由 MVP 三元组管理(好吧,不是真的,模型对所有三元组都是通用的)
当我点击树视图上的一个节点时,我想在绘图组件中看到对应选定对象的绘图,我想在属性表单中看到这个选定对象对应的一些属性。
我的基本问题是: a) 在哪里存储“选定对象”信息? b) 如何警告“选定对象”已更改的绘图组件和属性表单?
我开始想一些解决方案,但我很不高兴。
我不赞成将“选定对象”放入模型中并执行观察者同步。 “选定对象”不属于模型
所以我想,我会将这些信息存储在演示者中 如果我在 Treeview Presenter 中放置“选定对象”,在我看来,绘图组件的 Presenter 和 Property 表单的 Presenter 都必须在 Treeview Presenter 上保存一个引用,才能检索此信息。
它在演示者之间产生了一些耦合,我也不喜欢。
所以我正在寻找其他想法和/或 cmets。感谢您的宝贵时间。
【问题讨论】: