一个项目的核心就是架构。
MVP是一种项目架构设计模式(说白了就是我们产品的一种设计方案)
其实MVP本质 就是将View和Model完全隔离,通过Presenter统一调度管理(Presenter扮演着中介的角色)传统的设计思路是我们直接跟房东谈,效率不高,累。
例如:找房子(租房子)
房东(Model) ——中介(Presenter)—— 自己(View)
例如:我们的UI要从网络中获取数据,那么首先你得通过Presenter中介,然后中介通知Model获取网络数据,然后Model获取网络数据,返回给Presenter,Presenter通知View,更新UI界面
具体访问流程:
MVP中的M是Model,说白了就是我们的数据(包括数据库,文件,服务器等等。。。)
MVP中的V是VIew,说白了就是我们的UI界面(Activity,Fragment,视图)
MVP中的P是Presenter,说白了就是我们的调度者(中介)
三、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(); }
`