这里仅仅记录自己对于mvp模式的理解
mvp是从mvc演化而来的,想了解mvp就先必须了解mvc
mvc是什么, v view m model c controller
他们三者的关系是什么样的呢,
view 即 视图 ,负责用户的输入,和界面的显示 ,需要数据是直接从model中拉取数据
model 数据 (网络上或者本地数据) 获取数据后处理后显示在界面上,当数据发生变化时 直接通知view更新数据
controller 负责view输入的信息后调用model的数据 呈现在界面上给用户显示
在这里view和model是有直接的联系的,耦合性高 下面我画张图来说明mvc的关系
可以看到model和view是有直接联系的,这样子不方便测试,后期维护也很麻烦,所以演化出了mvp
mvp和mvc的区别就是model和view不再有直接的联系,所有的沟通都通过presenter来进行,他们三者的关系如下图所示
可以看到model和view是没有直接的联系了,完全通过presenter来操作,model是三者里面独立性最高的,可以方便做单元测试,
我本人还在熟悉mvp模式,所以说的不是很深刻. 我们只要理解各司其职,该谁完成的就谁做,不要混乱在一起,即便不用mvp整个项目结构也是跟清晰的,生搬硬套的话还是混论的,先理解在运用, 网络请求 数据处理 界面显示 应放在那里.
推荐一篇文章 个人认为写的不错http://www.jianshu.com/p/50c7124f408e