使用MVP 书写 Android

本文探讨了使用MVP模式在Android开发中的应用,通过分离展示层和业务逻辑层,提高代码的整洁性和可维护性。MVP模式中,View负责UI绘制和用户交互,Model承载业务逻辑和数据模型,而Presenter作为桥梁协调两者。遵循这一模式,可以将事件处理和业务逻辑集中在Presenter中,避免View直接处理。文章提供了一些实例来阐述如何在实际项目中应用MVP模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

  http://blog.youkuaiyun.com/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); 
    }}
 

 
 

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值