三层架构和mvc资料整合

三层架构和mvc资料整合

ID:18740845

大小:212.00 KB

页数:17页

时间:2018-09-22

三层架构和mvc资料整合_第1页
三层架构和mvc资料整合_第2页
三层架构和mvc资料整合_第3页
三层架构和mvc资料整合_第4页
三层架构和mvc资料整合_第5页
资源描述:

《三层架构和mvc资料整合》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、WEB三层架构与MVC 收藏先说说Web三层架构这个古老话题。地球人都知道web三层架构是指:>用户接口层(UserInterfaceLayer)>业务逻辑层(BussinesslogicLayer)>数据访问层(dataaccesslayer)1、用户表现层(UIL):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。三层架构是最基本的项目分层结果,而MVC则是三层架构的一个变体,MVC是一

2、种好的开发模式。首先你要明白MVC分别代表的是什么意思.M即Model(模型层),主要负责出来业务逻辑以及数据库的交互V即View(视图层),主要用于显示数据和提交数据C即Controller(控制器),主要是用作捕获请求并控制请求转发三层:UI界面层BLL业务逻辑层,DAL数据访问层,Model实体层MVC中的的M不是三层中的Model(实体层),他其实包括三层中的BLL,DAL,Model,这是非常要注意的,这也是他们之间的区别的关键所在关于业务逻辑和用户接口在早期的web开发中,因为业务比较简单,并没有这三层的划分。用户数据的呈现及输入的接收、封装、验证、处理、以及对数据库的操作,都

3、放在jsp页面中。这时的开发,好比盘古尚未开天辟地,整个web开发就是一片“混沌”。随着业务越来越复杂,人们开始考虑更好的利用OOP这把利刃来解决问题。于是有人发现把业务逻辑抽取出来并形成与显示和持久化无关的一层,能够让业务逻辑清晰,产品更便于维护。这就是SUN当初倡导的JSPModel1开发方式。关于持久化JSPM1开发方式中,并没有对数据如何持久化给出建议。在许多公司中,它们的产品是以数据库为中心进行架构和设计的。在他们的产品里,虽然也有DAO层,但是职责不清。为什么这么说呢,因为我发现在许多人眼里,DAO层的指责很简单——增删改查。但我认为,这样理解实际上是本末倒置了。对于简单数据的

4、管理来说,这样理解无可厚非。但随着业务逻辑变得日益复杂。我们实在是被复杂的对象关系搞头疼了,如果这时我们还要考虑如何把数据存储起来(通常的情况下是存到关系型数据库中),我们开始抱怨自己软件的架构太恶心,一团糟。面向对象设计思想教会我们——如果我们不想做这件事,就交给别人做吧!这时聪明的架构师们提出了一个概念——持久化。如果我们在自己的应用中添加一个新的层——专门负责对象状态的持久化保存及同步,那不就可以全心全意的“搞对象”了吗?持久化概念的产生,代表着我们对关系型数据库的依赖降低了。因此甚至有人推断——数据库已死。同时,关系型数据库这个新的概念也不断形成,并演化成理论,又由理论衍生出产品。

5、因此一个意识良好的程序员,至少应该认同,持久化并不是产品中最重要的环节——最重要的环节是清晰正确的业务逻辑。灰色地带是的,从理论上看,web三层架构很美了。但在实际开发产品的时候,我们发现了很多问题。主要问题就是用UI层和业务层之间有许多灰色地带。这些灰色地带业务逻辑层不想管,UI层也不想管。让我们举一些例子:例子1,难以管理的页面跳转关系上图是我在讲JSP课程时,一个简单案例的页面跳转关系图。这是一个十分简单的例子,但页面跳转关系已经挺复杂了。试想,如果你正在做一个有上百张表,十几个核心模块,几百个页面的产品时,这张图将变得多么复杂!而问题是,这些页面跳转关系分散在JSP和Servlet

6、中,非常难以管理。例子2,表单数据的验证及封装:假设我们正在做一个简单的表单提交,我们希望对用户数据的数据进行验证和封装,最终交给业务逻辑层一个实体对象。从三层架构分析,我们想要做的事情是这样的:但是该把验证和封装数据的工作交给谁来做呢?UI层还是业务逻辑层?都不太合适!例子3,国际化:如果我们想为不同国家和地区的人提供不同的语言,无疑需要国际化的支持。那么,我们需要在JSP页面上根据用户的配置或请求信息判断应该为该用户呈现哪国文字。而这些判断和显示的逻辑应该划分到业务逻辑层还是UI层呢?用MVC的思路解决问题对于纠缠不清的问题,我们总要想办法将其分解。MVC是一种设计思想。这种思想强调实

7、现模型(Model)、视图(View)和控制器的分离。这种思想是如何作用于web的呢?实际上,我们在web开发中引入MVC思想,想要达到的目的是:实现UI层和业务逻辑层分离——控制器是为了实现上述目的而存在的!在解决了持久化的问题后,我们发现,我们的所说的业务逻辑层和MVC中的Model指的是一回事,我们所说的UI层和MVC中的View是一回事。MVC提供了让模型和视图相分离的思路——引入控制器。我们把页面跳转关系管理、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。