MVP架构学习笔记
一个项目的核心就是架构。
1、什么是MVP架构?
MVP是一种项目架构设计模式(说白了就是我们产品的一种设计方案)
其实MVP本质 就是将View和Model完全隔离,通过Presenter统一调度管理(Presenter扮演着中介的角色)传统的设计思路是我们直接跟房东谈,效率不高,累。
例如:找房子(租房子)
房东(Model) ——中介(Presenter)—— 自己(View)
例如:我们的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();
}
`