MVP设计模式初体验 2019-03-15

一、引言

从老大搭好的框架中看到了MVP的设计模式,一头雾水不知如何使用,特意去网上学习,做了Demo,特来做下纪录。


二、初识MVP

MVP模式(Model-View-Presenter)可以说是MVC模式(Model-View-Controller)在Android开发上的一种变化,进化模式。


MVP设计模式初体验 2019-03-15_第1张图片
MVC结构图

Model:就是JavaBean实体类,用于保存实例数据

Controller:控制器用于更新UI界面和数据实例

View:其实就是程序的UI界面,用于向用户展示数据以及接收用户的输入


MVP设计模式初体验 2019-03-15_第2张图片
MVP结构图

Model:负责处理数据的加载或者储层,比如网络或本地数据库获取数据等..

Presenter:控制器用于更新UI界面和数据实例

View:负责界面数据展示,与用户进行交互

MVP模式的核心思想:

MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类还是原来的Model

这就是MVP模式,现在这样的话,Activity的工作的简单了,只用来响应生命周期,其他工作都丢到Presenter中去完成。从上图可以看出,Presenter是Model和View之间的桥梁,为了让结构变得更加简单,View并不能直接对Model进行操作,这也是MVP与MVC最大的不同之处。

MVP的使用:

1、创建IPresenter接口,把所有业务逻辑的接口都放在这里,并创建它的实现PresenterCompl(在这里可以方便地查看业务功能,由于接口可以有多种实现所以也方便写单元测试)

2、创建IView接口,把所有视图逻辑的接口都放在这里,其实现类是当前的Activity/Fragment

3、由UML图可以看出,Activity里包含了一个IPresenter,而PresenterCompl里又包含了一个IView并且依赖了Model。Activity里只保留对IPresenter的调用,其它工作全部留到PresenterCompl中实现

4、Model并不是必须有的,但是一定会有View和Presenter

三、MVP实现Login-Demo

View     interface

MVP设计模式初体验 2019-03-15_第3张图片
接口View 在Activity中实现

Presenter


MVP设计模式初体验 2019-03-15_第4张图片
Presenter-1
MVP设计模式初体验 2019-03-15_第5张图片
Presenter-2

Model

MVP设计模式初体验 2019-03-15_第6张图片
model

activity


activity

model是可以不要的。

四、BaseMVP MVP的简单封装

目录

BasePresenter

MVP设计模式初体验 2019-03-15_第7张图片
BasePresenter

BaseView   interface

MVP设计模式初体验 2019-03-15_第8张图片
BaseView   

BaseActivity

MVP设计模式初体验 2019-03-15_第9张图片
BaseActivity

五、总结

这只是简单的使用,等以后技术高点的时候,在写一片深入的。

本文参考MVP模式 - 巫山老妖 - 博客园

你可能感兴趣的:(MVP设计模式初体验 2019-03-15)