详解详解Android MVP开发模式开发模式
本文主要讲解MVP开发模式以及具体实例。
一、简介一、简介
MVP(Model View Presenter)模式是著名的MVC(Model View Controller)模式的一个演化版本,目前它在Android应用开
发中越来越重要了。初看起来我们会感觉增加了很多类接口代码看起来更加清晰。
MVP模式可以分离显示层和逻辑层,所以功能接口如何工作与功能的展示可以实现分离,MVP模式理想化地可以实现同一份
逻辑代码搭配不同的显示界面。不过MVP不是一个结构化的模式,它只是负责显示层而已,任何时候都可以在自己的项目结
构中使用MVP模式。(不局限于Android项目开发)
因为MVP其实就是从MVC模式演化产生的,那么我们先看一下著名的MVC模式:
View:对应于布局文件对应于布局文件
Model:业务逻辑和实体模型业务逻辑和实体模型
Controller:控制器控制器,Android中对应于中对应于Activity
对应的交互图如下:
虽然Android系统应用开发本身是遵循MVC开发模式的,但是我们仔细看一下View层和Activity,具体view布局文件中的数据
绑定和事件处理的方法代码都是冗余在Activity中的,所以我们经常看可以看到Activity类动不动就是少则九百行,多则上千甚
至几千行。那么现在的演化升级版本的MVP的模式又是怎么样的呢?MVP模式会引入 Presenter层,该机型复杂完成View层
和Model层的交互,那么具体MVP对应如下:
View:View通常来说是由通常来说是由Activity实现的,它会包含一个实现的,它会包含一个Presenter的引用,的引用,View要做的就只是在每次有接口调用的时候要做的就只是在每次有接口调用的时候
(比如按钮点击后)调用(比如按钮点击后)调用Presenter的方法。的方法。
Model:业务逻辑和实体模型业务逻辑和实体模型
Presenter:主要作为沟通:主要作为沟通View和和Model的桥梁,它从的桥梁,它从Model层检索数据后,返回给层检索数据后,返回给View层,但是不像层,但是不像MVC结构,因为它结构,因为它
也可以决定与也可以决定与View层的交互操作。层的交互操作。
数据交互图如下:
观察上面两个模式的交互图,是不是MVP模式更加清晰简单啊!
二、二、MVC和和MVP区别区别
我们来具体看一下下面两张对比,就可以看来具体区别了: