Android开发经验谈Android开发程序员

Android 手把手教学 MVP 模式 (一)

2018-11-26  本文已影响5人  老去的九零后青年

首先 我们先来介绍一下

MVP模式

是MVC模式在Android上的一种变体,要介绍MVP就得先介绍MVC。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些Controller的东西在里面。这对于开发与维护来说不太友好,耦合度大高了。把Activity的View和Controller抽离出来就变成了View和Presenter,这就是MVP模式。

MVC模式

MVC模式的结构分为三部分,实体层的Model,视图层的View,以及控制层的Controller。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。

Model:Bean实体类,保存解析实例数据

View:就是我们的UI界面

Controller:是控制VIew与Model的交互

缺点:在Android开发中,Activity并不是一个标准的MVC模式中的Controller,它的首要职责是加载应用的布局和初始化用户 界面,并接受并处理来自用户的操作请求,进而作出响应。随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,以致变得庞大臃肿。

MVP模式

MVP框架由3部分组成:View负责显示,Presenter负责逻辑处理,Model提供数据。在MVP模式里通常包含3个要素(加上View interface是4个):

View:负责绘制UI元素、与用户进行交互(在Android中体现为Activity)

Model:负责存储、检索、操纵数据(有时也实现一个Model interface用来降低耦合)

Presenter:作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。

*View interface:需要View实现的接口,View通过View interface与Presenter进行交互,降低耦合,方便进行单元测试

MVP的优点:

1、模型与视图完全分离,我们可以修改视图而不影响模型;

2、可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部;

3、我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁;

4、如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)。

下面就让我们;来就行封装

首先是BaseView

在实现的方法中,进行loging加载、和标题的设置 还有请求接口错误日志

所有Presenter的基类 view 的绑定在这里主要进行了绑定View和销毁VIew

在这里还可以可以优化一下就是View 使用弱引用

public void attachView(V view) {

this.weakView =new WeakReference(view);

}

今天就先到这里  这里封装的就是基本的基类

上一篇下一篇

猜你喜欢

热点阅读