美文网首页
MVC、MVP、MVVM

MVC、MVP、MVVM

作者: 小李同学今天博学了吗 | 来源:发表于2021-04-02 14:50 被阅读0次

    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的双向绑定

    相关文章

      网友评论

          本文标题:MVC、MVP、MVVM

          本文链接:https://www.haomeiwen.com/subject/xpdkektx.html