zoukankan      html  css  js  c++  java
  • 理解MVC/MVP/MVVM的区别

     

    转载至【http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html

    MVC

    所有的通信都是单向的。

    M(Model)V(View)C(Controller)

    View:视图:用户界面--是直接面向最终用户的“视图层”,是能与用户操作交互的界面。

    Model:模型:数据保存--是核心的“数据层”,是程序要操作的数据或信息。

    Controller:控制器:业务逻辑--负责根据用户从“视图层”输入 的指令,选取“数据层”中的数据,然后对其进行相应操作后,产生最后结果。

     

    • 用户可以向 View 发送指令(DOM 事件),再由 View 直接要求 Model 改变状态。
    • 用户也可以直接向 Controller 发送指令(改变 URL 触发 hashChange 事件),再由 Controller 发送给 View。
    • 用户也可以直接向 Controller 发送指令(改变 URL 触发 hashChange 事件),再由 Controller 发送给 View。

     

     

    MVP

    MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向

    M(Model)V(View)P(Presenter)

     

    1.  各部分之间的通信,都是双向的。
    2.  View 与 Model 不发生联系,都通过 Presenter 传递。
    3.  View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

     

    MVVM

    MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。

    M(Model)V(View)V(View)M(ViewModel)

    唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular 和 Ember 都采用这种模式。

  • 相关阅读:
    Spring MVC 体系结构和处理请求控制器
    Spring配置补充
    MyBatis与Spring的整合
    Ioc和AOP使用扩展
    JS 节流
    JS写返回上一级
    iframe父页面获取子页面的高度
    博客编写计划
    正则表达式
    实用 SQL 命令
  • 原文地址:https://www.cnblogs.com/M-miao/p/9854412.html
Copyright © 2011-2022 走看看