当前位置: 首页 > 编程笔记 >

MVC、MVP和MVVM分别是什么_动力节点Java学院整理

叶俊郎
2023-03-14
本文向大家介绍MVC、MVP和MVVM分别是什么_动力节点Java学院整理,包括了MVC、MVP和MVVM分别是什么_动力节点Java学院整理的使用技巧和注意事项,需要的朋友参考一下

一、MVC

MVC模式的意思是,软件可以分成三个部分。

视图(View):用户界面。

控制器(Controller):业务逻辑

模型(Model):数据保存

各部分之间的通信方式如下。

1.View 传送指令到 Controller

2.Controller 完成业务逻辑后,要求 Model 改变状态

3.Model 将新的数据发送到 View,用户得到反馈

所有通信都是单向的。

二、互动模式

接受用户指令时,MVC 可以分成两种方式。一种是通过 View 接受指令,传递给 Controller。

另一种是直接通过controller接受指令。

三、实例:Backbone

实际项目往往采用更灵活的方式,以 Backbone.js 为例。

1. 用户可以向 View 发送指令(DOM 事件),再由 View 直接要求 Model 改变状态。

2. 用户也可以直接向 Controller 发送指令(改变 URL 触发 hashChange 事件),再由 Controller 发送给 View。

3. Controller 非常薄,只起到路由的作用,而 View 非常厚,业务逻辑都部署在 View。所以,Backbone 索性取消了 Controller,只保留一个 Router(路由器)。

四、MVP

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

1. 各部分之间的通信,都是双向的。

2. View 与 Model 不发生联系,都通过 Presenter 传递。

3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

五、MVVM

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Spring MVC之DispatcherServlet_动力节点Java学院整理,包括了Spring MVC之DispatcherServlet_动力节点Java学院整理的使用技巧和注意事项,需要的朋友参考一下 Spring MVC之DispatcherServlet 使用Spring MVC,配置DispatcherServlet是第一步。 DispatcherServlet是一

  • 本文向大家介绍servlet和tomcat_动力节点Java学院整理,包括了servlet和tomcat_动力节点Java学院整理的使用技巧和注意事项,需要的朋友参考一下 Servlet是什么 为了能让Web服务器与Web应用这两个不同的软件系统协作,需要一套标准接口,Servlet就是其中最主要的一个接口。 规定: Web服务器可以访问任意一个Web应用中实现Servlet接口的类。 Web应用

  • 本文向大家介绍Spring MVC拦截器_动力节点Java学院整理,包括了Spring MVC拦截器_动力节点Java学院整理的使用技巧和注意事项,需要的朋友参考一下 Spring为我们提供了: org.springframework.web.servlet.HandlerInterceptor接口, org.springframework.web.servlet.handler.HandlerI

  • 本文向大家介绍Spring MVC之DispatcherServlet详解_动力节点Java学院整理,包括了Spring MVC之DispatcherServlet详解_动力节点Java学院整理的使用技巧和注意事项,需要的朋友参考一下 DispatcherServlet作用 DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分

  • 本文向大家介绍Java死锁_动力节点Java学院整理,包括了Java死锁_动力节点Java学院整理的使用技巧和注意事项,需要的朋友参考一下 死锁是两个甚至多个线程被永久阻塞时的一种运行局面,这种局面的生成伴随着至少两个线程和两个或者多个资源。在这里我已写好一个简单的程序,它将会引起死锁方案然后我们就会明白如何分析它。 Java死锁范例 ThreadDeadlock.java 在上面的程序中同步线程

  • 本文向大家介绍Java多态(动力节点Java学院整理),包括了Java多态(动力节点Java学院整理)的使用技巧和注意事项,需要的朋友参考一下 什么是多态 1. 面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 2. 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行