转载请注明链接:https://blog.youkuaiyun.com/feather_wch/article/details/79729132
Android架构(MVC/MVP/MVVM与模块化、组件化)
版本:2019/3/2-1(10:00)
MVC
1、Android中MVC是什么?特点?
Model:针对业务模型建立的数据结构和类(与View无关,只与业务相关)View:XML/JAVA或者JS+HTML进行页面的显示。Controller:Android的控制层通常在Activity、Fragment之中。
本质就是Controller操作Model层的数据,并且将数据返回给View层展示。
2、Android的MVC的缺点:
Activity并不是MVC中标准的Controller,既有Controller的职责也有View的职责,导致Activity的代码过于臃肿。View层和Model层互相耦合,不易于开发和维护。
MVP
3、Android中的MVP模式
MVP(Model-View-Presenter)Model:主要提供数据的存储功能。Presenter需要通过Model存取数据。View: 负责处理点击事件和视图展示(Activity、Fragment或者某个View控件)Presenter:View和Model之间的桥梁,从Model检索数据后返回给View层。使得M/V之间不再有耦合关系。
4、MVP和MVC的区别
MVP中绝对不允许View直接访问Model- 本质是
增加了一个接口降低一层耦合度
5、MVP的特点
Presenter完全将Model和View分离,主要逻辑处于Presenter中。Presenter和具体View没有直接关联,通过定义好的接口进行交互。View变更时,可以保持Presenter不变(符合面向对象编程的特点)View只应该有简单的Set/Get方法、用户输入、界面展示的内容,此外没有更多内容。
6、MVP的缺点
MVP的中使用了接口的方式去连接view层和presenter层,如果有一个逻辑很复杂的页面,接口会有很多,导致维护接口的成本非常大。解决办法:尽可能将一些通用的接口作为基类,其他的接口去继承。
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
pub

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


最低0.47元/天 解锁文章
2348

被折叠的 条评论
为什么被折叠?



