(转)MVC设计模式学习总结

原文  :

chenchun的博客

http://www.cnblogs.com/jobscn/archive/2011/11/08/2240725.html

------------------------------

随着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-06 00:38:42

(转)MVC设计模式学习总结的相关文章

MVC设计模式-学习笔记

1)如果严格按照MVC思想的话,浏览器首页访问的是控制器,然后再由控制器转发到视图2)位于WEB-INF/目录下的资源,客户端无法直接访问,只能通过服务端转发进入3)request对象也可用于资源的转发request.getRequestDispatcher("/WEB-INF/success.html").forward(request,response);4)通过正则表达式验证中文:[\u4E00-\uFA29]+5)对于重定向而言,前后的二个Request域对象不同,如果取值不到

Java Web开发中MVC设计模式简介

一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前

[原创]java WEB学习笔记19:初识MVC 设计模式:查询,删除 练习(理解思想)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

MVC基础学习—理论篇

1.      简介 ?  定义?什么是MVC     MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. ?  VC模式和我们熟悉的WebForm模式    

ASP.NET下MVC设计模式的实现

[转载]MVC架构在Asp.net中的应用和实现 转载自:http://www.cnblogs.com/baiye7223725/archive/2007/06/07/775390.aspx 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能为Web应用带来的好处.并以“成都市信息化资产管理系统”框架设计为例,详细介绍其在Asp.net环境下的具体实现.旨在帮助Web设计开发者更好的了解和掌握MVC,合理利用MVC构建优秀的Web应用. 关键字:MVC.视图.控制器.模型.Asp.net

设计模式学习总结系列应用实例

1.单例模式 应用实例:1.一个党只能有一个主席.2.Windows是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行.3.一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件. 2.工厂模式 应用实例:1.你需要一辆汽车,你可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现 2.Hibernate换数据库只需换方言和驱动

闲话iOS的MVC设计模式

模式是经验知识的复制应用.MVC设计模式在不同的开发平台有不同阐述和应用.目前在网路上可以搜索出java版本.c++版本.c#版本的,也有ios版本的.我这里也发布这篇关于MVC设计模式的文章,用我的缘走你的路. 写在前面的话 若然不用设计模式,难道就不能开发设计程序了吗?不然.那么设计模式给我们带来什么呢?如果你不学习别人总结出来的设计模式,就能轻松.快捷.真正地解决问题,而且还乐意再来一次,我相信你不需要别人的设计模式了.如果??某些问题,让你很挠头,让你不敢再回首,不妨借助别人总结出来的设

设计模式 学习笔记1

2016.4.25 业务是目的:  取火 技术是方法: 钻木取火 架构师 协调业务和技术的关系,把主要业务(目的/问题)分拆成具体的技术实现方案 软件公司里头: 架构师要懂很多技术,还要有商业头脑 所谓“架构” 就是把一个大的系统给拆分,拆散后又能顺利的组装起来. 软件架构包括了:代码架构以及承载代码运行的硬件部署架构 软件开发是需要成本的,要考虑项目难度和开发周期. 技术复杂度太高,掌握这项技术的时间成本和后期维护的难度(后期维护也需要训练新员工来进行维护)就会大大增加. 所以小项目用高技术肯

三层架构与MVC & 设计模式的较量

刚刚学习了三层架构,而且正在实际应用中,但随着学习的深入,又了解到了一个叫MVC的东西,(早在设计模式中就听到过MVC,只是简单查了一下什么意思.)现在正好把这三个东西放在一起聊聊. 三层 是一个分层式的软件体系架构设计,它可适用于任何一个项目. 它是从整个应用程序架构的角度把程序分为三层UI层,BLL层,DAL层(当然如果程序需要,还可以分多层).三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑.比如将数据库操作代码封装到一层中