Android MVP的基类抽取+二次封装

本文探讨了MVP模式在Android开发中的应用,强调其优点在于代码解耦和便于单元测试。通过分析MVP的组成部分——Model、View、Presenter,作者展示了如何抽取Fragment基类,并详细讲解了Presenter、Contract、以及Model层的实现,旨在提供一个清晰的MVP实践指南。
摘要由CSDN通过智能技术生成

MVP 模式好不好,有的人说好,因为大家都说好,有的人说不好,代码太多。其实还是好的,不好是因为姿势不对。

MVP 全称:Model-View-Presenter ;MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。

我们先过一张图来先理解
在这里插入图片描述

mvp 主要目的在于代码解耦和方便单元测试

先带着看下基类,然后我们再看具体实现:
首先我们先看看 Fragment 的抽取

package com.qffxl.qffxl20190102.base;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import com.qffxl.qffxl20190102.base.mvp.BasePresenter;
import com.qffxl.qffxl20190102.base.mvp.IBaseView;

/**
 * @auther: 清风扶细柳
 * @Date: 2019/1/2
 * @Time:下午 07:01
 *    抽取的Fragmeng  
 */
public abstract class BaseFragment<P extends BasePresenter> extends Fragment implements IBaseView {
   
	
	
    protected P presenter;
	
	
    @Nullable
    @Override
    /*
    *创建布局
	*/
    
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
   
        View view = View.inflate(getActivity(), bindlayoutId(), null);
        presenter = initPresenter();
       
        presenter.attachView(this);
      
        initView(view);
        return view;


    }
	//交给子类   去实现方法
    protected abstract P initPresenter();

    protected abstract void initView(View view);

    protected abstract int layoutId();
	
	
    @O
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值