简单ANDROID MVP结构

MVC的主要目的是为了视图和数据分离,分离开之后便于管理,及造福后人。代码全部堆在Activity中的现象让开发过程变得极其乏味。

Android中的MVC模式

Android世界中也可以运用到MVC模式。 

其中V也就是View层。 

M对应Model层,通常用于处理数据库文件,Sharedprefrence,内存缓冲。

而Controller控制层基本上也由Activity层面来进行。

 

Android中的MVP模式

MVP与MVC模式有些类似,但是又有不同。它的架构图如下: 

 

 

图片来自百度百科

 

 

.M(Model) 数据相关层

.V(View) 视图层,如Activity上的布局(但不限于时Activity,可以是Fragment、自定义View等等)

.P(Presenter) 纽带层,用来连接Model与View.

MVP开发在Android中的基本流程 

1. View层定义View.interface,用来定义View的行为。一般由Activity或者是Fragment来实现这个接口,它定义了View视图的各种变化,如设置Textview,加载对话框,更新进度条等。

interface View  {

    void setPresenter(T presenter);
}
public class MyView extends Activity implements View {

    private Presenter mPresenter;
    public MyView (Context context) {
        super(context);

    }

    @Override
    public void setPresenter(Presenter presenter) {
        this.mPresenter = presenter;
    }
}

2. Model层定义Modle.interface,这个是用来定义数据层发生变化时的通知接口,因为Model不能直接与View交互,所以它与Presenter交互,然后再通过Presenter间接达到与View的交互。 

interface Model {

    void methodModel();
}

 

3. Presenter翻译的意思是主持人,也就是主持场合,控制节奏的意思。在这时Presenter就负责具体的业务逻辑,请求数据,把数据送到Model,或者监听Model的数据变化,接受View层的动作,负责通过通知View层的视图变化。

interface Presenter { 
    void methodPresenter();
}
public class MyPresenter implements Presenter {

    private WeakReference mView;// 此处使用弱引用,避免内存溢出

    public MyPresenter (View view) {
        if(null != view) {
            mView= new WeakReference<>(view);
            mView.get().setPresenter(this);
        }
    }
}

总结:这只是最简单的一种MVP结构,MVP结构还有很多衍生,需要进一步强化学习。此外MVVM结构也不错,选择适合项目的才是最好的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值