Android架构之MVC、MVP、MVVM

本文详细介绍了Android架构中的MVC、MVP和MVVM模式,探讨了各自的优缺点以及在实际开发中的应用。MVC模式在Android中存在职责混杂的问题,而MVP通过分离视图和逻辑,降低了耦合。MVVM通过数据绑定实现了视图与模型的双向同步。此外,文章还讨论了模块化和组件化在大型项目中的重要性,以及它们之间的区别和应用场景。
摘要由CSDN通过智能技术生成

转载请注明链接:https://blog.csdn.net/feather_wch/article/details/79729132

Android架构(MVC/MVP/MVVM与模块化、组件化)

版本:2019/3/2-1(10:00)

MVC

1、Android中MVC是什么?特点?

  1. Model:针对业务模型建立的数据结构和类(与View无关,只与业务相关)
  2. View:XML/JAVA或者JS+HTML进行页面的显示。
  3. Controller:Android的控制层通常在Activity、Fragment之中。
    本质就是Controller操作Model层的数据,并且将数据返回给View层展示。
    MVC

2、Android的MVC的缺点:

  1. Activity并不是MVC中标准的Controller,既有Controller的职责也有View的职责,导致Activity的代码过于臃肿。
  2. View层Model层互相耦合,不易于开发和维护。

MVP

3、Android中的MVP模式

  1. MVP(Model-View-Presenter)
  2. Model:主要提供数据的存储功能。Presenter需要通过Model存取数据。
  3. View: 负责处理点击事件和视图展示(Activity、Fragment或者某个View控件)
  4. Presenter: View和Model之间的桥梁,从Model检索数据后返回给View层。使得M/V之间不再有耦合关系。
    MVP

4、MVP和MVC的区别

  1. MVP中绝对不允许View直接访问Model
  2. 本质是增加了一个接口降低一层耦合度

5、MVP的特点

  1. Presenter完全将ModelView分离,主要逻辑处于Presenter中。
  2. Presenter具体View没有直接关联,通过定义好的接口进行交互。
  3. View变更时,可以保持Presenter不变(符合面向对象编程的特点)
  4. View只应该有简单的Set/Get方法、用户输入、界面展示的内容,此外没有更多内容。

6、MVP的缺点

  1. MVP的中使用了接口的方式去连接view层presenter层,如果有一个逻辑很复杂的页面,接口会有很多,导致维护接口的成本非常大。
  2. 解决办法:尽可能将一些通用的接口作为基类,其他的接口去继承。

7、MVP的实现

Model层

//Model层-数据的实体类:NetInfo.java
public class NetInfo {
   
    private int code;
    private String msg;
    public NetInfo(int code, String msg){
   
        this.code = code;
        this.msg = msg;
    }
    public int getCode() {
   
        return code;
    }
    public void setCode(int code) {
   
        this.code = code;
    }
    public String getMsg() {
   
        return msg;
    }
    public void setMsg(String msg) {
   
        this.msg = msg;
    }
}
//Model层-请求数据时View和Model的交互接口(中间层Presenter去实现):LoadTasksCallBack.java
public interface 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值