Android MVP 模式

介绍

MVP模式(Model-View-Presenter)是MVC模式的一个衍生。主要目的是为了解耦,使项目易于维护。

View

View通常来说就是有Activity、Fragment实现的,View会包含一个或多个Presenter的引用来满足视图的业务逻辑。View和Presenter的交互是双向的,即View层可以调用Presenter的逻辑方法,Presenter也可以控制View的显示。

Presenter

Presenter作为Model和View的桥梁,负责从Model拿到数据进行处理并返回给View。但Presenter和其他两层的沟通是通过接口协议进行的,所以每个Presenter中通常会包涵一个或多个接口协议。

Model

和MVC一样,作为数据仓库只负责对APP数据进行处理。

MVC

Model 是应用程序中用于处理应用程序数据逻辑的部分。

View 是应用程序中处理数据显示的部分。

Controller是应用程序中处理用户交互的部分。

为什么使用MVP

在以往的Android开发中,Activity并不是一个标准的MVC模式中的Controller, 它的加载应用的布局和初始化用户界面,接受并处理来自用户的操作请求,进而作出响应。但是随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,以致变得庞大臃肿。当我们将其中复杂的逻辑处理移至另外的一个类(Presneter)中时,Activity其实就是MVP模式中View,它负责UI元素的初始化,建立UI元素与Presenter的关联(Listener之类),同时自己也会处理一些简单的逻辑(复杂的逻辑交由Presenter处理)。

View和Model之间的耦合度降低,使其更关注自身业务逻辑;

便于单元测试;

代码复用率提高;

代码框架更适用于快速迭代开发;

 M存储数据,V交互,P处理逻辑。VP之间通过接口通信。

MVCMVP

View不直接与Model交互 ,而是通过与Presenter交互来与Model间接交互View可以与Model直接交互

Presenter与View的交互是通过接口来进行的,更有利于添加单元测试Controller是基于行为的,并且可以被多个View共享

通常View与Presenter是一对一的,但复杂的View可能绑定多个Presenter来处理逻辑可以负责决定显示哪个View

MVP层Presenter层和MVC的Controller一样,负责核心逻辑,但不一样的是Presenter通过接口协议进行数据传递,并阻断了View和Model的直接联系,从而使View和Model更加专注于自身业务逻辑。

你可能感兴趣的:(Android MVP 模式)