ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MVP架构简单搭建

2021-09-26 23:02:57  阅读:190  来源: 互联网

标签:MVP 架构 Presenter void presenter Model 搭建


MVP架构学习笔记

一个项目的核心就是架构。

1、什么是MVP架构?

MVP是一种项目架构设计模式(说白了就是我们产品的一种设计方案)
其实MVP本质 就是将View和Model完全隔离,通过Presenter统一调度管理(Presenter扮演着中介的角色)传统的设计思路是我们直接跟房东谈,效率不高,累。
例如:找房子(租房子)
房东(Model) ——中介(Presenter)—— 自己(View)
MVP架构数据访问流程

例如:我们的UI要从网络中获取数据,那么首先你得通过Presenter中介,然后中介通知Model获取网络数据,然后Model获取网络数据,返回给Presenter,Presenter通知View,更新UI界面

具体访问流程:
运行流程图

2、MVP的含义?

MVP中的M是Model,说白了就是我们的数据(包括数据库,文件,服务器等等。。。)

MVP中的V是VIew,说白了就是我们的UI界面(Activity,Fragment,视图)

MVP中的P是Presenter,说白了就是我们的调度者(中介)

3、MVP和MVC的区别?

在这里插入图片描述
三、MVP架构搭建流程
搭建MVP架构
第一步:定义MVP架构包
1、在mvp包下我们划分为三个模块 model、presenter、view
在这里插入图片描述
2、接下来在presenter包下建一个接口MvpPresenter

package com.l.mvpjpro.mvp.presenter;

public interface MvpPresenter {

    //绑定数据
    void attachView();
    //解除绑定
    void detachView();
}

在model包下建接口MvpModel

public interface MVPModel {
//加载数据
    void loadGoodData(OnLoadListtener onl oadListtener);
    interface onl oadListtener{
        //内部接口
        void onComplete(List<Goods> goods);
    }
}

在view包下建接口MvpView

public interface MVPView {
    //显示
    void showDataView();
    void showEorr();

}

在这里插入图片描述

创建一个BaseActivity来初始化并绑定VIew`

public abstract class BaseActivity<T extends BasePresenter,V extends BaseView> extends AppCompatActivity {
    //初始化
    //使用presenter来绑定View
    private T presenter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        presenter = ceatepresenter();
        presenter.attachView((V)this);
    }

    protected abstract T ceatepresenter();
}

`

标签:MVP,架构,Presenter,void,presenter,Model,搭建
来源: https://blog.csdn.net/weixin_44173424/article/details/110878924

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有