Android MVP模式浅谈

自闭症网瘾萝莉.ら 提交于 2019-12-12 15:49:11

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Model – 为UI层提供的数据,或者保存UI层传下来的数据

  • View – 单纯的展示数据,响应用户操作并都转发给Presenter来做具体的处理

  • Presenter – 逻辑控制层,从Model处取数据,运算和转化,最后用View来展示;并处理View传过来的用户事件,并做处理

需要注意的是MVP仅用于应用中的GUI部分,它并不是整个应用的架构方式。一个应用的主要的架构应该包括基础组件,业务逻辑层和GUI展示层,而MVP仅是用于展示层的设计模式。另外,它是一个方法论的东西,没有固定的实现方式,只要能体现出它的方法就可以算是MVP。

MVP与MVC的区别

MVC之中逻辑是放在了Model里,Controller负责桥接View和Model,View发生变化时通知Controller,Controller再通知Model,Model进行逻辑处理,更新数据,然后通知View来刷新。可以看到MVC中三者之间都有联系,如果处理不好,或者当View比较复杂时,三者之间都会双向关联。MVC在命令行应用,以及WEB中有大量的应用,但对于客户端(PC和移动端)的GUI应用,MVC往往解决不了复杂性,移植性上以及可测试性上也没有优势。


MVP的改进在于:

  • 逻辑放在Presenter中

  • View和Model抽象成为接口

这样就带了二个好处:

  • 代码更加容易移植

  • 代码更加容易加入Unit Testing



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!