2015-12-09 108 views
6

我正在尝试遵循MVP模式。但是,我对如何处理这种模式下的适配器和视图持有者存在一些疑问。适配器作为演示者?或者与演示者交谈? Android和MVP

我应该使用适配器作为演示者吗?拥有业务逻辑?

或者我应该传递一个处理列表逻辑的演示者实例,然后在与适配器元素发生任何交互时调用演示者的方法?

谢谢

+0

我认为Android的看法适配器是纯粹的V-范围的东西,如果适配器是主持人 - 这些主持人是在视图中实施内部某处。另外,演示者不应该包含业务逻辑,因为他们只是M和V之间的中介。在我当前的基于MVP的项目中,演示者完全不知道列表适配器,因为他们不应该在乎如何显示something_的_list(例如,主持人只是告诉一个视图:“以某种方式显示路由”,并且只监听一个视图事件“onRouteSelected”,因为路由可以从任何类型的小部件获得,而不一定是列表)。 –

+1

那么,你有没有参考适配器内的演示者?或者,您是否将侦听器添加到适配器事件中,然后重定向到演示者?@LyubomyrShaydariv –

+0

是的,第二种情况:适配器可以与托管视图进行交互,然后一个特定视图决定如何将事件转换/委派给演示者(或演示者监听器 - 取决于您如何分隔演示者和监听器接口)。 –

回答

3

有一个在Android的

实施MVP要回答你的问题并没有确切的/正确的定义,在我看来,Presenter不应该有任何Android的逻辑。

这样,Adapter将是一个“View”,那么即演示者提供了它的数据(通过ActivityFragment),它只是与如何呈现该交易。

我会做MVP如下。

  1. 模式 - POJO的,分析,存储(SQLlite)和检索数据(HTTP)。很显然,我会将POJO的解析和数据库逻辑分成子文件夹 - 但这一切都属于我的模式。

  2. 查看 - ActivityFragmentAdapters - 活动&片段保持参照演示,让他们要显示的数据。如何显示这些数据/信息,外观+手感等在View中处理。

  3. 演示 - 中间人,提供了逻辑到输入即按钮点击,数据的检索,输入&验证然后将结果传递回视图(ActivityFragment

这里有MVP

一个伟大的文章,以下是MVP

的简化 diagram

enter image description here

回答这个question修改(也由我回答)