阅读 84

MVC、MVP、MVVM

MVC

1.定义:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

关系:
View:(视图层),对应于xml布局文件

控制层(Controller)
Android的控制层由Activity来承担,Activity作为初始化话页面和展示数据的操作,这里他负责视图的显示又要加入控制逻辑,承担的功能过多会导致Activity臃肿

模型层(Model):我们针对业务模型,奖励的数据结构和相关的类,主要负责数据的操作,如网络请求,数据库操作,IO操作等

MVP

由MVC演变而来,由于MVC中View层和Model层可以直接交互,代码存在耦合,Activity当了controller和View的角色,在MVC模式下随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,以致变得庞大臃肿

视图层:(View)
负责绘制UI 元素,与用户进行交互,对应于xml、Activity、Fragement

控制层:(Presenter)
Presenter是整个MVP 体系的控制中心,作为View和Model的中间枢纽,处理View与Model间的交互和业务逻辑

模型层:Model
负责存储、检索、操纵数据

他们的关系是:View层响应用户请求 ->通过View层里面P的引用调用 P层, ->p层处理具体的业务逻辑通过调用M层引用进行数据处理->M层进行业务处理完成后调用P层传递过来的回调 ->P层在再回调V层的引用进行UI更新

MVVM

MVVM模式(Model--View--ViewModel模式),和MVP模式相比,MVVM 模式用ViewModel替换了Presenter ,其他层基本上与 MVP 模式一致,ViewModel可以理解成是View的数据模型和Presenter的合体。

MVVM采用双向绑定,View的变动自动反应到ViewModel,V与VM通过Databingding实现双向绑定,解决了MVP中P与V关系紧密的问题

视图层:(View)
对应于Activity和xml,负责View的绘制及用户交互

控制层:(ViewModel)创建关联,将Model和view绑定起来,之后model的更改,通过ViewModel反馈给View,从而刷新界面

模型层(Model):负责数据实现和逻辑处理,

View层的Activity通过DataBingding生成Binding实例,把这个实例传递给ViewModel,ViewModel层通过把自身与Binding实例绑定,从而实现View中Layout与ViewModel的双向绑定

作者:小李同学今天博学了吗

原文链接:https://www.jianshu.com/p/e4553f817534

文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐