MVC架构模式概述

MVC

MVC概述:

Model–view–controller (MVC) is a software architectural pattern for implementing user interfaces.

MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

MVC模式的目的是实现一种动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

  • (控制器Controller)- 负责转发请求,对请求进行处理。

    The controller, accepts input and converts it to commands for the model or view.

  • (视图View) - 界面设计人员进行图形界面设计。

    A view can be any output representation of information, such as a chart or a diagram; multiple views of the same information are possible, such as a bar chart for       management and a tabular view for accountants.

  • (模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

    The model, captures the application‘s behavior in terms of its problem domain, independent of the user interface. The model directly manages the application‘s data,      logic and rules.



MVC组件中的互动图示

详细解析各组成部分: 

  • 模型(Model 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。(比较:观察者模式软件设计模式))
  • model notifies its associated views and controllers when there has been a change in its state. This notification allows the views to produce updated output, and the controllers to change the available set of commands. In some cases an MVC implementation might instead be "passive," so that other components must poll the model for updates rather than being notified.
  • 视图(View能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册
  • view requests information from the model that it uses to generate an output representation to the user.
  • 控制器(Controller起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。事件包括用户的行为和数据模型上的改变。
  • controller can send commands to the model to update the model‘s state (e.g., editing a document). It can also send commands to its associated view to change the view‘s presentation of the model (e.g., by scrolling through a document).



百科MVC数据流图示 

MVC组件类型关系与功能图示




优点:

1、多个视图能共享一个模型。如:要求Web网站同时能提供Internet界面和WAP界面。在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。

2、控制器是自包含(self-contained)指高獨立內聚的物件,与模型和視圖保持相对独立,所以可以方便的改变应用程序的数据层和业务规则。

3、控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同的模型和视图去完成用户的需求,也可以构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的的视图将处理结果显示给用户。

时间: 2024-08-24 15:15:12

MVC架构模式概述的相关文章

MVC架构模式

MVC架构模式 参考: MVC框架_百度百科https://baike.baidu.com/item/MVC%E6%A1%86%E6%9E%B6/9241230?fr=aladdin MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验. 1.说一说Servlet生命周期(非常重要) Servlet生命周期包括三部分: 初始化:Web容器加载servlet,调用init()方法 只执行一次 处理请求:当请求到达时,运行其service()方法.service()自动调用与请求相对应的doXXX

Spring 框架基础(06):Mvc架构模式简介,执行流程详解

本文源码:GitHub·点这里 || GitEE·点这里 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,MVC分层有助于管理和架构复杂的应用程序 M:代表模型Model 模型就是数据,应用程序的核心. V:代表视图View 回显数据的界面,例如JSP就是用来展示模型中的数据. C:代表控制器Controller 控制器的作

Android 四大组件 与 MVC 架构模式

作为一个刚从JAVA转过来的Android程序员总会思考android MVC是什么样的? 首先,我们必须得说Android追寻着MVC架构,那就得先说一下MVC是个啥东西! 总体而来说MVC不能说是一个设计模式,因为划分维度太大,所以MVC应该属于架构模式! 百度百科 —— MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将业务逻辑被聚集到一个部件

ASP.NET MVC架构模式

一.是什么? MVC,即(Model-View-Controller,模型-视图-控制器模式),和三层类似,用于表示一种软件架构模式.在这种模式下,将系统的实现分为模型Model,视图View,控制器Controlller.其中Model:对数据库的操作和一般的业务逻辑.View:负责做出和用户交互的显示:Controller:处理Request和Response请求,是View层访问Model层的中介. 二.具体实现. 通过一个具体的例子来看MVC的具体实现 首先:新建一个MVC 3 web应

对MVC架构简单概述设计(三)

看t2噬菌体的博客中对三层架构的概要设计 借鉴他的我也说一下我这次的mvc框架的简单设计. 三层架构分为三层,mvc也分三层:模板  ,控制器   ,视图  它们各个处理自己的任务 模型  模型表示企业数据和业务规则.在MVC的三个部件中,模型拥有最多的处理任务. 例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库. 被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个 视图提供数据.由于应用于模型的代码只需写一次就可以被多个视图重用

初学者对于MVC架构模式学习与理解

理解MVC的工作原理,明白一个网页是如何显示出来的 之前一直盲目的在慕课上看视频,脑袋里想着要理解mvc,看了mvc相关的视频,看完之后就觉得空白白的,M,V,C各代表什么我知道,但是这个究竟有啥意思,是要干嘛的,工作原理是什么,一直都还处于迷茫状态,现在回顾起来觉得自己太盲目的去看视频,没有带任何的问题,没有目的性的去看,脑袋也没有思考,所以看完就是空白白的,今天又把MVC看了一小部分,突然就豁然开朗了,或许是我带着思考和想法去看了,只是初学者最简单的理解 之前写过一篇.net网站开发流程,上

JavaWeb程序架构模式的演进

JavaWeb程序架构模式的演进 老一辈的程序员一般都经历了Web程序架构模式的演进,从最开始的在jsp或者jsp+Servlet上做开发,到后来的mvc.三层等.而现在有挺多人学完web,可能都没怎么使用过jsp或jsp+Servlet开发过项目,就直接学习使用Spring.Spring Boot或者SpringMVC等框架进行开发.如果没有经历这样一个逐步演进的过程,就很难理解框架带给了我们什么样的好处,而且开发过程中遇到问题也难以解决,更别说去学习这些框架中的源码了.学习是一个循序渐进的过

业务层架构模式

一:业务层架构模式概述 在三层架构中,业务层负责所有业务相关的工作,包括根据输入数据或已有数据进行计算,对从表示层输入的数据进行验证,以及根据从表示层接收的命令来确定应该调用哪些数据访问逻辑.对于应用系统来说,业务层主要维护业务逻辑,是系统的核心部分.因此,在应用系统开发时,业务层的开发是最为关键的. 业务层的架构模式有多种,最著名的就是以下两种 : 事务脚本模型(面向过程的设计) 领域模型(面向对象的设计) 二:事务脚本模型 事务脚本(Transaction Script)架构模型是按照传统的