《android-MVP模式的困惑》

什么是MVP模式呢?个人理解就是老的MVC架构模式的一种延伸,能体现一种面向接口编程的思想。之因此会有MVP,是由于MVC中,C即Controllor对应于Activity或者Fragment。他们负责的东西太多了。好比:控件的初始化,网络请求,数据绑定,事件传递等。这显得咱们的Controllor太过于臃肿(即又当C又当V)。而为了给Controllor减轻负担,因而就有了Presenter这个一个中间层,让Presenter负责完成View于Model间的交互。这有点像Web开发中的Service,什么业务逻辑都放在这里来处理,而后再与Action交互。编程


在网上也看到了不少图形来解释MVP与MVC的区别,以下:网络


这是mvc:架构


这是MVP:mvc


主要区别是这样的:接口

还有就是真个项目的结构图:生命周期



经过上面的几个图咱们不难发现,MVP模式中Presenter在这整个模式中显得很重要,那么问题来了(这也是我没用想明白的事情):事件

一、Presenter经过接口的方式提升了代码的复用性,下降了耦合度,可是若是业务很是复杂的时候Presenter层会不会也会像MVC模式中的Activity同样显得很臃肿。开发


二、Presenter既然负责完成View于Model间的交互,那么它的生命周期怎么去控制。it


三、Presenter层的出现,虽然下降了耦合度,可是相对于MVC来讲代码量会增长部分(对每一个界面的把控难度也增长了,由于你要些接口,必然要清楚这个界面应该作的事情),应该怎么去提升开发效率。io


四、Presenter在与View交互的时候,若是这个界面是一个表单界面,字段又不少的状况下View与Presenter之间又怎么去交互。




我也但愿有人能帮我解决这个问题。谢谢

相关文章
相关标签/搜索