三层架构与MVC

标签: 三层 架构 mvc | 发表时间:2013-01-25 21:22 | 作者:han_yankun2009
出处:http://blog.csdn.net

Mvc

 

MVC是Model View Controller , 是模型-视图-控制器的缩写,一种软件设计典范.用于组织代码用 一种业务逻辑和数据显示分离的方法,这个方法的假设挑剔是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化指定而不需要重新编写业务逻辑.

 

三层架构是最基本的项目分层结果,而MVC则是三层架构的一个变体,MVC是一种好的开发模式。首先你要明白MVC分别代表的是什么意思:

M 即Model(模型层),主要负责出来业务逻辑以及数据库的交互 

V 即View(视图层),主要用于显示数据和提交数据 

C 即Controller(控制器),主要是用作捕获请求并控制请求转发

三层:UI 界面层 BLL 业务逻辑层,DAL数据访问层,Model 实体层 

MVC中的的M 不是三层中的Model(实体层),他其实包括三层中的 BLL,DAL,Model,这是非常要注意的,这也是他们之间的区别的关键所在。其优点如下: A、低耦合性; B、高重用性和可适用性; C、较低的生命周期成本;D、快速的部署;E、可维护性;F、有利于软件工程化管理。当然优点也有缺点,那就是内部结构复杂,不容易理解,文件数量大,管理难度自然也就大。

 

 

 

M是指数据模型,v是用户界面,c则是控制器,使用mvc的目的 是将 M和V实现代码分离,从而使同 一个程序可以使用不同的表现形式 .

 

MVC是一种框架模式,它强制性的使应用程序的输入,处理和输出分开,使用MVC应用程序被分成三个核心部件:模型,视图,控制器,它们各自处理自己的任务.

 

视图    : 用户看到并与之交互的界面.好处是它能为应用程序处理很多不同的视图.在视图中其实没有真正的处理发生,不管这些数据是联机存储还是一个雇员列表,视为视图来讲,它只是作为一个输出数据并允许用户操纵的方式.

 

模型:模型表示企业数据和业务规则.模型拥有最多的处理任务.模型与数据格式无关,这样一个模型就能为多个视图提供数据,由于应用与模型的代码只需要写一次就可以被多个视图重用,所以减少了代码的重用性.

 

控制器:控制器接收用户的输入并调用模型和视图去完成用户的需求,所以当单机WEB页面中的超链和发送Html表单时,控制器本身不输出任何东西和任何处理.它只是接收请求并决定调用哪个模型构件去处理请求.然后决定调用哪个视图来显示返回的数据.

 

 ===============================================================================

框架模式和设计模式区别

 

框架, 设计模式这两个概念容易被混淆.其实他们之间有区别的.

构件通常是代码重用,而设计模式是设计重用

框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用.在软件生成中有 三种级别的重用: 内部重用,即在同一种应用中能公用使用的抽象模块; 代码重用,即将通用模块组合成库或工具集,一边在多个应用和领域都能使用; 应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性.

 

框架与设计相识,但却有着根本的不同.设计模式是对某种环境中反复出现的问题以及结局该问题的反感的描述,它比框架更抽象;框架可以用代码描述,也能直接执行或复用.而对于设计模式只有实例才能用代码表示,;设计模式是比框架更小的元素,一个框架中含有一个或多个设计模式,框架总是针对某一个特定应用领域,但同一个模式却可以适用于各种应用.所以说框架是软件,而设计模式是软件的知识.

 

简而言之:框架模式是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方法,以提高代码复用率,降低耦合度.

 

 

作者:han_yankun2009 发表于2013-1-25 21:22:44 原文链接
阅读:18 评论:0 查看评论

相关 [三层 架构 mvc] 推荐:

三层架构与MVC

- - CSDN博客推荐文章
MVC是Model View Controller , 是模型-视图-控制器的缩写,一种软件设计典范.用于组织代码用 一种业务逻辑和数据显示分离的方法,这个方法的假设挑剔是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化指定而不需要重新编写业务逻辑.. 三层架构是最基本的项目分层结果,而MVC则是三层架构的一个变体,MVC是一种好的开发模式.

MVC演化史

- huige - 火丁笔记
Martin Fowler在他所写的《企业应用架构模式》一书中感慨道:MVC已经成为我们最常误用的模式. 人们之所以常常误用MVC,很大程度上是因为混淆了不同的MVC变体. 大概上世纪七十年代,Xerox PARC的Trygve提出了MVC的概念,并应用在Smalltalk系统中,为了和其它类型的MVC加以区分,历史上习惯的称之为Classic MVC.

Spring MVC 和 Struts2

- - CSDN博客架构设计推荐文章
Web层面的框架学习了三个Struts1和2,SpringMVC,那他们之间肯定存在一个优劣和适用的环境,Struts1和2的异同点我已经做过对比《 Struts1和Struts2》,这篇将对比下Struts2和SpringMVC的异同,下面数据基本来源于网络,本人是搜集整理所得,供大家参考. 一个项目使用什么样的技术,决定的因素很多,我所能想到的有:对系统的性能、开发的效率、团队学习的成本、业务场景等,下面尽量从这几个方面入手,来分析比较下他们之间存在的优劣.

最佳MVC实践

- - CSDN博客架构设计推荐文章
原文地址 http://www.yiiframework.com/doc/guide/1.1/zh_cn/basics.best-practices 最佳MVC实践(Best MVC Practices). Although Model-View-Controller (MVC) is known by nearly every Web developer, how to properly use MVC in real application development still eludes many people.

srping mvc RequestMapping实现

- - CSDN博客推荐文章
spring mvc中定义请求的url只需要在方法上添加注解: @RequestMapping("aa.mvc")即可定义访问的url地址,但是你是否有考虑过为什么添加这个注解就可以实现url访问地址的定义了呢. 首先定义注解RequestMapping. mvc中常需要对输入值进行合法性校验,所以也定义了校验的注解MyValid.

MVC就是个选择题

- Dash - Becomin' Charles
由于采用了Web开发框架来开发项目,所以我首次在真正的项目中采用MVC的开发模式. 随着项目的不断深入,我也在不断反思,MVC设计模式到底给项目带来了什么. 听起来都很难听对吗,但是确实如此. 清晰的代码结构,易于维护,易于扩展. 当然,我不是在批判MVC,只是觉得,在使用MVC过程中,还是需要投入更深入的思考,到底怎样才能用好这个设计模式.

表现层模式-MVC

- - 博客园_首页
       在前面简述了从服务层到数据层参见 架构设计目录. 剩下了表现层,一个再好的中间层表现也必须有一个用户界面,提供和用户交互,将用户行为输入转化为系统操作,进入后台逻辑. 在当下RAD(快速应用开发)工具的支持下,我们可以比较快速的完成UI设计,RAD追求所见即所得的快速反馈,快速应用.

Spring MVC 3 深入总结

- - 企业架构 - ITeye博客
大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了. Spring3 MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀. 官方的下载网址是: http://www.springsource.org/download   (本文使用是的Spring 3.0.5版本).

Spring MVC 与 web开发

- - 码蜂笔记
项目组用了 Spring MVC 进行开发,觉得对里面的使用方式不是很满意,就想,如果是我来搭建开发环境,我会怎么做. 下面就是我的想法,只关注于 MVC 的 View 层. 现在基本上都是用 ajax 来调用后台接口,拿到 json格式的数据再展示,有的人直接返回数据,却没有考虑异常的情况,我觉得返回的报文里必须包含表示可能的异常信息的数据和业务响应数据.

Spring MVC的常见错误

- - Java译站
10年前我开始自己的职业生涯的时候,Struts还是市场上的主流标准. 然而多年过后,我发现Spring MVC已经越来越流行了. 对我而言这并不意外,因为它能和Spring容器无缝集成,同时它还提供了灵活性及扩展性. 从我迄今为止对Spring的经验来看,我发现有不少人在配置Spring的时候经常会犯一些常见的错误.