多个 MVP 演示者:如何沟通和共享信息?
Posted
技术标签:
【中文标题】多个 MVP 演示者:如何沟通和共享信息?【英文标题】:Multiple MVP presenters: How to communicate and share information? 【发布时间】:2011-07-13 03:00:06 【问题描述】:我正在按照 MVP 模式设计一个 Winforms MDI 应用程序,但我遇到了一些与我的应用程序不同部分之间的通信相关的问题。
这是此应用程序的简单图片: 1 - 左侧是树视图 2-中间有一个绘图组件 3-在右边,一个“财产”表格。 这 3 个部分由 MVP 三元组管理(好吧,不是真的,模型对所有三元组都是通用的)
当我点击树视图上的一个节点时,我想在绘图组件中看到对应选定对象的绘图,我想在属性表单中看到这个选定对象对应的一些属性。
我的基本问题是: a) 在哪里存储“选定对象”信息? b) 如何警告“选定对象”已更改的绘图组件和属性表单?
我开始想一些解决方案,但我很不高兴。
我不赞成将“选定对象”放入模型中并执行观察者同步。 “选定对象”不属于模型
所以我想,我会将这些信息存储在演示者中 如果我在 Treeview Presenter 中放置“选定对象”,在我看来,绘图组件的 Presenter 和 Property 表单的 Presenter 都必须在 Treeview Presenter 上保存一个引用,才能检索此信息。
它在演示者之间产生了一些耦合,我也不喜欢。
所以我正在寻找其他想法和/或 cmets。感谢您的宝贵时间。
【问题讨论】:
【参考方案1】:首先,很抱歉回复晚了 :) 有很多事情要完成 :D
我不知道您的代码是如何构建的,但您可能可以使用Retlang。然后,您可以轻松地在消息中传递 ID 列表,并在任何您喜欢的地方处理此消息。
另外,我很想听听您在一年前是如何解决问题的。
【讨论】:
以上是关于多个 MVP 演示者:如何沟通和共享信息?的主要内容,如果未能解决你的问题,请参考以下文章
应该将演示者(mvP)注入(dagger2)到android中的视图吗?
在 MVP 模式中,了解活动/上下文的演示者是不是是个坏主意?
从单元测试的角度来看:视图应该指定演示者还是 GWT MVP 中的其他方式?