zoukankan      html  css  js  c++  java
  • MCV与MVVM的区别

    什么是MVC

    官方解释:

    • Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
    • View(视图) - 视图代表模型包含的数据的可视化
    • Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

    通俗点来讲,model就是我们从数据库存取的数据,view是我们能看到的页面展示,如果要把我们想要的数据以某种形式展示在页面上,没有controller之前,把处理数据的逻辑都写在model里,这样不仅代码难以复用,而且model里代码就会显得很臃肿,所以controller的出现主要是从model中分离出数据处理的逻辑代码,简化model的操作。这样就形成了一个单向的数据流,用户对View的操作交给了Controller处理,在Controller中响应View的事件调用Model的接口对数据进行操作。 View与Model的数据交换只能通过Controller来承上启下。

    MVC的优缺点

    优点:

    • 耦合性低,视图模型控制器三者相互分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码。
    • 重用性高,多个视图能共享一个模型
    • 可维护性高,分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
    • 前后端可以分工作业,提升开发效率

    缺点:

    • 不适合小型应用程序
    • 增加系统结构和实现的复杂性
    • 控制层和表现层有时会过于紧密,导致没有真正分离和重用
    什么是MVVM

    MVVM是Model-View-ViewModel的简写。
    它本质上就是MVC的改进版。Model指的是后端传递的数据。View指的是所看到的页面。ViewModel是mvvm模式的核心,它是连接view和model的桥梁。它有两个方向:一是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。二是将【视图】转化成【模型】,即将所看到的页面转化成后端的数据。实现的方式是:DOM 事件监听。这两个方向都实现的,我们称之为数据的双向绑定。

    MVVM模式在概念上是真正将页面与数据逻辑分离的模式。

    MVVM与MVC最大的区别在于 它实现了View和Model的自动同步,通过ViewModel来实现双方的通讯。当数据变化的时候,Viewmodel能够监听到这种变化,并及时的通知view做出修改。同样的,当页面有事件触发时,Viewmodel也能够监听到事件,并通知model进行响应。Viewmodel就相当于一个观察者,监控着双方的动作,并及时通知对方进行相应的操作。

  • 相关阅读:
    php计算utf8字符串长度
    php和js字符串的acsii码函数
    快速排序的php实现
    bzoj 2822 [AHOI2012]树屋阶梯 卡特兰数
    bzoj 1485 [HNOI2009]有趣的数列 卡特兰数
    bzoj 4173 打表???
    bzoj [Noi2002]Savage 扩展欧几里得
    bzoj 3505 [Cqoi2014]数三角形 组合
    bzoj 2820 莫比乌斯反演
    Travel 并查集
  • 原文地址:https://www.cnblogs.com/ljygirl/p/13553531.html
Copyright © 2011-2022 走看看