Android学习笔记MVP模式框架
1.MVP模式介绍:
在上一次学习中,我简单的介绍了MVC构架,这次我来简单的介绍下什么是MVP。对于MVP,他其实就是MVC的一个演化版本,MVP全称Model View Presenter。目前MVP在android应用开发中越来越重要了,相信不少的开发者也在各种讨论关于MVP的理论了。那么这个MVP模式他到底有哪些应用的好处呢?首先MVP能够有效的降低View的复杂性,避免业务逻辑被塞进View中,使得View代码优化了不少。MVP模式会解除View与Model的耦合,同时又带来了良好的可扩展性、可测试性,保证了系统的整洁性、灵活性。可能对于简单的应用,你会觉得MVP会稍微显得有点麻烦,因为他提出了各种各样的接口概念,是的整个应用充斥着零散的接口,但是对于比较复杂的应用来说,MVP模式是一种良好的构架模式,它能够非常好的组织应用结构,使得应用变得灵活
2. MVP简单结构图:
从上图可以看出,MVP模式很好的分离显示层和逻辑层,他们之间通过接口进行通信,降低耦合。理想化的MVP模式可以实现同一份逻辑代码搭配不同的显示界面,因为他们之间并不依赖于具体,而是依赖与抽象。这使得Presenter可以运用于任何实现了View逻辑接口的UI,使之具有更广泛的使用性,保证了灵活度。
3. MVP模式的三个角色:
3.1 Presenter——交互中间人
Presenter主要作为沟通View和Model的桥梁,它从Model层检索数据后,返回给View层,是的View
和Model直接没有耦合,也将业务逻辑从View角色上抽离出来,相比MVC模式,就很好的减少了View
中的逻辑实现代码。
3.2 View——用户界面
View通常是指Activity、Fragment或者某个View控件,它含有一个Presenter成员变量。通常View需要
实现一个逻辑接口,将View上的操作通过会转交给Presenter进行实现,最后,Presenter调用View逻辑
接口将结果返回给View元素。
3.3 Model——数据的存储
对于一个结构化的App来说,Model角色主要是提供数据的存取功能。Presenter需要通过Model层存
储、获取数据,Model就像一个数据仓库。更直白地说,Model是封装了数据库Dao或者网络获取数据的
角色,或者两种数据获取方式的集合。
4. MVP的代码实现:
关于具体的实现我就不在这里重复写了,有想了解的大家可以参考我的这些MVP模式框架的代码: