Android MVP框架搭建

本文介绍了Android中MVP框架的结构和工作原理,包括Presenter作为功能服务者的角色,以及MVP模式的优点和缺点。文章详细阐述了如何进行MVP的准备工作,如模块划分和使用工厂模式+代理模式实现框架封装。此外,还提供了MVP在实际项目中的应用步骤,包括Activity定义、布局文件、Presenter和Contract的创建。最后,提到了一些关于MVP库的使用和代码管理建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

MVP简介(VIew-Model-Presenter)

Image text
Presenter整个功能的服务者,当用户通过界面(View)与应用进行交互或潜在交互时,界面将有效事件上报给Presenter,Presenter则根据事件需求进行处理,包括与数据(Model)之间的交互。形象来说就是:MVP就是一个非自助式餐厅,顾客就相当于我们的用户,餐厅本身相当于View,餐厅工作人员相当于Presenter,餐厅的食材相当于Model。用户与View进行交互时,相当于客户来到餐厅,此时会触发工作人员进行服务,有点餐操作时,Presenter获取Model数据,并呈现给用户。

MVP 优缺点

优点

降低代码的耦合度,便于团队协同开发,提高代码复用,简化代码逻辑结构

缺点

对开发人员代码编写有了更高的要求,各个模块的编写要更多的考虑重用性和耦合度,接口文件的加入增加了整体的代码量。在部分简单的界面编写时肯能会出现MVP逻辑比非MVP更复杂。

MVP 的准备工作

各模块的划分

M:根据项目复杂程度可直接使用JavaBean,亦或包含数据处理模块的JavaBeanManager
V:一般使用activity、fragment、dialog、popupwindow,亦可是自定义Layout,一般一个V至少对应一个P
P:单独定义的模块,完成界面和数据的交互

使用工厂模式 + 代理模式 实现框架封装

BaseView的定义

1、BaseViewActivity

package com.ww7h.common.mvp.views;

import com.ww7h.common.mvp.contracts.MvpContract;
import com.ww7h.ww.common.bases.activity.BaseActivity;

/**
* ================================================
* 描述:
* 来源:     Android Studio.
* 项目名:   Android-common-mvp
* 包名:     com.ww7h.common.mvp.presenters
* 创建时间:  2019/5/5 20:21
*
* @author ww  Github地址:https://github.com/ww7hcom
* ================================================
*/
public abstract class BaseViewActivity<P extends MvpContract.IPresenter>
        extends BaseActivity<BaseViewActivity<P>> {

    protected P iPresenter;

    @Override
    protected boolean getDesignPattern() {
        return true;
    }

    @Override
    protected void initContentView() {
        super.initContentView();
        setContentView(getContentView());

        iPresenter = getPresenter();

    }

    /**
    * 获取当前视图需要用到的的Presenter
    * @return presenter
    */
    protected abstract P get
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值