MVC 模式

随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越 
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。 
其中‘层’是逻辑上的划分。 
三层体系结构是将整个系统划分为如图2.1所示的结构[3] 

(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。 
该层用于向客户端用户提供GUI交互,它允许用户在显示系统中输入和编辑数据,同时 
系统提供数据验证功能。 
(2)业务逻辑层(Business layer):包含业务规则处理代码,即程序中与业务 
相关专业算法、业务政策等等。该层用于执行业务流程和制订数据的业务规则。业务逻 
辑层主要面向业务应用,为表示层提供业务服务。 
(3)数据持久层(Persistence layer):包含数据处理代码和数据存储代码。数 
据持久层主要包括数据存取服务,负责与数据库管理系统(如数据库)之间的通信。 
三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分, 
各层与其余层分离,但各层之间存有通信接口。 
采用三层软件设计架构后,软件系统在可扩展性和可复用性方面得到极大提高,在 
资源分配策略设计合理运用的同时,软件的性能指标也得到提升,系统的安全性和易管东北 
理性也得到改善。 
三层体系结构对Web应用的软件架构产生很大影响,促进了基于组件的设计思想, 
产生了许多开发Web层次框架的实现技术。较之两级结构来说,三层结构修改和维护上 
更加方便。目前开发B/S结构的Web应用系统广泛采用这种三层体系结构。

设计模式起源: 
1994 年,由 Erich Gamma,Richard Helm,Ralph Johnson 和 John Vlissides(即所谓的“四人帮’,GoF:Gang of Four)合作的以《设计模式:可复用的面向对象软件的基本原理》为题目的书藉出版了。这本书解释了模式的用处,同时也使得设计模式得到广泛普及。在书中,他们四人记录了他们长期工作中发现的经典 23 个设计模式。 
IoC模式 
IoC 模式是 Apach Avalon 项目创始人之一 Stefano Mazzocchi 提出的一种代码调用模式,后被 MartinFowlcr 改名为 Dependency Injection(依赖注入),也就是将类和类,方法和方法之间的关系通过第三方(如配置文件)进行“注入”,不需要类或者方法自己去解决彼此间的调用关系。 IoC(Inversion of Control, 控制反转), 是一种用来解决组件(也可以是简单的 Java类)之间依赖关系、配置及生命周期的设计模式,它可以解决模块间的耦合问题。IoC模式它是把组件之间的依赖关系提取(反转)出来,由容器来具体配置。这样,各个组件之间就不存在代码关联,解决了调用方与被调用方之间的关系问题,任何组件都可以最大程度的得到重用。

IoC 模式实现的技术途径 
表 2.1 列举出了 IoC 的三种实现方式。本文中设计并实现的服务器端数据验证组件就是采用了第一种类型的 IoC 实现方式。

MVC模式 : 
MVC 是 Model-View-Control 的简称,即模型-视图-控制器。它是一个存在于服务器 
表达层的模型,它将应用分开,改变应用之间的高度耦合。 
MVC 是在 20 世纪 80 年代发明的一种软件设计模式,至今已被广泛使用,最近几年 
被推荐为 Sun 公司 J2EE 平台的设计模式。

MVC 模式结构 
MVC 模式将应用分为模型、视图和控制器三个部分: 
1. 视图:数据的展现。 
视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。 
2. 模型:应用对象。 
模型是应用程序的主体部分。 模型代表了业务数据和业务逻辑; 当数据发生改变时,它要负责通知视图部分;一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。 
3. 控制器:逻辑处理、控制实体数据在视图上展示、调用模型处理业务请求。 
当 Web 用户单击 Web 页面中的提交按钮来发送 HTML 表单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。

MVC 模式运行机制 
如图 2.2 所示为 MVC 模式运行机制: 

在 MVC 模式中,Web 用户向服务器提交的所有请求都由控制器接管。接受到请求之后,控制器负责决定应该调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。

框架 
软件开发越来越倚重框架的使用。框架可以缩短应用软件系统的开发周期,提高软件生产效率和质量。大大简化了开发。选择何种框架、每个框架如何应用在在系统架构中是软件架构设计的重要环节。 
框架的定义 
在设计模式中,Gamma 等人为框架给出了一个明确定义:“框架(Framework)是一组协同工作的类,它们为特定类型的软件构筑了一个可重用的设计”。 
框架是一组为相互协作的构件(Component)的集合,它能够处理一个或多个问题域(Domain)中的一系列问题。框架强调的是软件设计的重用性和系统的可扩充性。它是为了追求重用所带来的价值量最大化,而将被重用最多的部分封装成各个组件,辅以回调机制将它们纳入框架的控制范围之内。所以,框架提供了可在应用程序之间共享的可复用的公共结构。

框架的特性 
框架包含以下几个关键特性: 
1.在应用方面,框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;在目标方面,框架是可被应用开发者定制的应用骨架。 
2.框架是一种软件,是应用程序的半成品。它可以供系统开发者选用,以完成系统的开发。 
3.框架解决的是某个特定范围即领域的问题。每个框架都有自己的目标领域,它并不能满足所有人的所有需求。

时间: 2024-10-13 05:39:49

MVC 模式的相关文章

【Unity】基于MVC模式的背包系统 UGUI实现

本文基于MVC模式,用UGUI初步实现了背包系统. 包含点击和拖拽两种逻辑,先献上源代码,工程和分析稍后补充. Model 层 using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; /// <summary> /// 脚本功能:MVC模式--Model层,定义物品结构,保存物品数据 /// 添加对象:Bag 背包(Canvas下的空对象) ///

Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)

前言: 我打算写一系列关于Swing程序开发的文章.这是由于最近我在做一个Swing产品的开发.长期做JavaEE程序,让我有些麻木了.Swing是设计模式的典范,是一件优雅的艺术品,是一件超越时代的产品! 有机会作Swing软件的开发,让我非常有感觉! 呵呵,希望有机会能够用Java3D编写软件,那种感觉一定更棒! Java和Swing都是杰作.我这个人对别人一向很挑剔的,能够得到我由衷地赞誉,可想而知它们有多优秀了.奇怪的是,它们居然一直都无法占领桌面市场.有人说这是技术的原因.我认为这应该

IOS常用设计模式——MVC模式(IOS开发)

Cocoa Touch中的MVC模式中,模型和视图不能进行通信,所有通信都是控制器完成. - 模型:是个较为特殊的对象,本质是视图的数据,Text Field输入的内容,Button上的标签都是模型,不一定非要创建一个模型类. - 视图:UIView,这个比较容易理解,向控制器发送请求. - 控制器:更新视图作为对用户请求的回应,更新模型的数据. 模型里面就是数据,视图就是个界面,控制器是中间的更新媒介. 1.触摸myButton时候,会触发方法. 2.视图控制器实现了一些委托和数据源的协议.

Java的MVC模式简介

Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC.它是一种软件设计的典范, 一.MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个

MVC模式介绍

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现

用户管理系统网站框架改进之MVC模式

从之前的用户管理系统中我们会发现,JSP主要是做界面的,但却用了JSP来对用户进行验证和分页处理,而Servlet处理页面的转跳是最快捷和最方便的,所以对用户管理系统的框架进行了改进,使用MVC模式. MVC是一种设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分为三个核心部件:模型.视图和控制器.它们各自处理自己的任务. MVC的各个字母分别是M(model模型).V(view视图)和C(controller控制器) M主要由Java class来处理,也可以是Jav

MVC模式 - 一种复合模式

MVC模式可以说是我们从事WEB开发人员最常见的模式 实际上,它是复合模式,一种由2个及以上的设计模式组成的设计模式 实际上是三个组件组成的模式,数据模型.视图.控制器 可以看得出来,实际上MVC是由观察者.组合.策略模式所组成的复合模式

基于mvc模式的应用框架之struts

Struts就是基于mvc模式的框架! (struts其实也是servlet封装,提高开发效率!) Struts开发步骤: 1. web项目,引入struts - jar包 2. web.xml中,引入struts的核心功能 配置过滤器 3. 开发action 4. 配置action src/struts.xml 1. 引入8个jar文件 2. web.xml <!-- 引入struts核心过滤器 --> <filter> <filter-name>struts2<

【设计模式】MVC模式

MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式.这种模式用于应用程序的分层开发. Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO.它也可以带有逻辑,在数据变化时更新控制器. View(视图) - 视图代表模型包含的数据的可视化. Controller(控制器) - 控制器作用于模型和视图上.它控制数据流向模型对象,并在数据变化时更新视图.它使视图与模型分离开. 实现 我们将创建一个作为模型的 Student 对象.Student

iOS里面MVC模式详解

MVC是IOS里面也是很多程序设计里面的一种设计模式,M是model,V是view,C是controller.MVC模式在ios开发里面可谓是用得淋漓尽致. 以下是对斯坦福大学ios开发里面MVC模式的一段话的翻译 主要的宗旨是把所有的对象分为3个阵营,model阵营,view阵营,或者是controller阵营 model(APP的目的) 举个例子,你要做一个打飞机的游戏,那么这个就是太空中这辆飞船的位置,什么机型,每个飞船有多少机枪,护甲有多少等等.这就是model所做的事,而飞机在屏幕上的