您的位置:首页 > 移动开发 > Android开发

使用MVP 书写 Android

2016-03-08 16:19 381 查看
  最近在网上看到很多关于MVP模式书写Android的文章,颇有想法。闲暇之余试了试,感觉确实不错,代码整洁了,心情舒畅了。

  所以想写篇博客分享分享,但是鄙人资质尚浅,需站在巨人的肩膀之上

  http://blog.csdn.net/lmj623565791/article/details/46596109
  http://gold.xitu.io/entry/56cd79c12e958a69f944984c
  很多理论上的知识请移驾上方连接处。

 


  MVP(Model View Presenter)模式 , 分离展示层和业务逻辑层的模式,使两者独立存在 的 模式。原文


View 对应于Activity,负责View的绘制以及与用户交互
Model 依然是业务逻辑和实体模型
Presenter 负责完成View于Model间的交互

我的理解是

  View 控制展示 ,通过接口把将要实现的功能抽象出来 ,然后对象的Activity和Fragment 具体实现其功能 。

例:  interface AViewModel
                      {

                               void showDialog();

                      }

            注意,这里是不能 有 事件处理(业务逻辑)的,只能有一些View的操作。事件处理(业务逻辑)应该是在 Presenter 中进行的。

            Activity的小例子在最后给出

Model  数据模型 和 业务模型 等...

             数据模型  实体类,也就是JavaBean

             业务模型  抽象出的业务逻辑,先写一个接口 ,抽象要执行的业务逻辑(比如登录);

            例: interface ADomain

                      {

                               void login();

                      }

Presenter  也就是控制层,业务逻辑的具体实现 。将就上面两个例子接着编...

            例:

class APresenter implements  ADomain

{

// 抽象的视图控制,Activity 或者Adapter 将实现的他

AViewModel mAViewModel;

public APresenter(AViewModel l){
//通过构造方法赋值,就可以对Activity 进行控制了
mAViewModel=l;
}

public  void  login(){
//控制Activity 显示 Dialog
mAViewModel.showDialog();
//TODO 执行 登录 的代码
}
 }



好了,基本模型就这样了,最后回到Activity

class AActivity extends Activity implements AViewModel
{
public void showDialog(){
//TODO 自己抽象的方法,这里仅仅只有一个,实际开发中肯定不止一个
}

APresenter mPresenter

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

<pre name="code" class="java">           //这样就建立绑定,你也可以在声明变量的时候直接new (即:APresenter mPresenter = new APresenter(this);)
mPresenter =new APresenter(this);
    }}





大致的思路就是这样,第一次写博客,鉴于资质太菜,不喜勿喷。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: