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

一、引言

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


二、初识MVP

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


MVC结构图

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

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

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


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

接口View 在Activity中实现

Presenter


Presenter-1
Presenter-2

Model

model

activity


activity

model是可以不要的。

四、BaseMVP MVP的简单封装

目录

BasePresenter

BasePresenter

BaseView   interface

BaseView   

BaseActivity

BaseActivity

五、总结

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容