Android MVP模式浅谈

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往往解决不了复杂性,移植性上以及可测试性上也没有优势。

Android MVP模式浅谈_第1张图片


MVP的改进在于:

  • 逻辑放在Presenter中

  • View和Model抽象成为接口

这样就带了二个好处:

  • 代码更加容易移植

  • 代码更加容易加入Unit Testing



你可能感兴趣的:(Android MVP模式浅谈)