MVP全称为Model-View-Presenter,是MVC的演化版本。
MVP模式可以分离显示层和逻辑层,它们之间通过接口进行通信,降低耦合,理想化的MVP模式可以实现同一份逻辑代码搭配不同的显示界面,因为他们之间并不依赖于具体,而是依赖于抽象。这使得Presenter可以运用于任何实现了View逻辑接口的UI,使之具有更广泛的适用性,保证了灵活度。
对于一个可扩展,稳定的应用来说,我们需要定义分离各个层,主要是UI层,业务逻辑层和数据层。
MVP模式可以让我们从Activity,Fragment等View角色中分离出大量的代码,使得每个类型的代码量大幅度减少,职责单一,易于维护。
MVP模式的三个角色
- Model -- 数据的存取
对于一个结构化的App来说,Model角色主要是提供数据的存取功能。Presenter需要通过Model层存储,获取数据,Model就像是一个数据仓库。更直白地说,Model是封装了数据库DAO或者网络获取数据的角色,或者两种数据获取方式的集合。 - View -- 用户界面
View通常是指Activity,Fragment或者某个View控件,它含有一个Presenter成员变量。通常View需要实现一个逻辑接口,将View上的操作通过会转交给Presenter进行实现,最后,Presenter调用View逻辑接口将结果返回给View元素。 - Presenter -- 交互中间人
Presenter主要作为沟通View和Model的桥梁,它从Model层检索数据后,返回给View层,使得View和Model之间没有耦合,也将业务逻辑从View角色上抽离出来。
其它优秀的MVP文章:
1.https://mp.weixin.qq.com/s/jfIYRm8V7fu-reCitebyMg
参考文章:《Android源码设计模式解析与实战》
网友评论