3层架构&趣谈三层架构的演变

3层架构&趣谈三层架构的演变

ID:3913412

大小:104.53 KB

页数:6页

时间:2017-11-25

3层架构&趣谈三层架构的演变_第1页
3层架构&趣谈三层架构的演变_第2页
3层架构&趣谈三层架构的演变_第3页
3层架构&趣谈三层架构的演变_第4页
3层架构&趣谈三层架构的演变_第5页
资源描述:

《3层架构&趣谈三层架构的演变》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、趣谈三层架构的演变发布:2009-9-0420:52

2、作者:佚名

3、来源:本站整理

4、查看:94次有关三层架构有很多理解。下面用养猪为比喻,介绍三层架构究竟是个什么东西。层次结构在现实社会里随处可见。记得有个笑话讲有个村长得意地向他老婆吹牛:“全中国只有四个人比我官大,乡长、县长、省长和国务院总理”。这个笑话也体现了真实社会中分层的现象。社会人群会分层,公司人员结构也会分层,楼房是分层的,甚至做包子的笼屉都是分层的。虽然分层的目的各有不同,但都是为解决某一问题而产生的。所以,分层架构其实是为了解决某一问题而产生的一种解决方案。14.1.1常用的三层架构设计软件系

5、统最常用的一般会讲到三层架构,其实就是将整个业务应用划分为表示层、业务逻辑层、数据访问层等,有的还要细一些,通过分解业务细节,将不同的功能代码分散开来,更利于系统的设计和开发,同时为可能的变更提供了更小的单元,十分有利于系统的维护和扩展。常见的三层架构基本包括如下几个部分,如图14-1所示。图14-1常见的三层架构◆数据访问层DAL:用于实现与数据库的交互和访问,从数据库获取数据或保存数据到数据库的部分。◆业务逻辑层BLL:业务逻辑层承上启下,用于对上下交互的数据进行逻辑处理,实现业务目标。◆表示层Web:主要实现和用户的交互,接收用户请求或返回用户请求的数

6、据结果的展现,而具体的数据处理则交给业务逻辑层和数据访问层去处理。日常开发的很多情况下为了复用一些共同的东西,会把一些各层都用的东西抽象出来。如我们将数据对象实体和方法分离,以便在多个层中传递,例如称为Model。一些共性的通用辅助类和工具方法,如数据校验、缓存处理、加解密处理等,为了让各个层之间复用,也单独分离出来,作为独立的模块使用,例如称为Common。此时,三层架构会演变为如图14-2所示的情况。图14-2三层架构演变结果◆业务实体Model:用于封装实体类数据结构,一般用于映射数据库的数据表或视图,用以描述业务中客观存在的对象。Model分离出来是

7、为了更好地解耦,为了更好地发挥分层的作用,更好地进行复用和扩展,增强灵活性。◆通用类库Common:通用的辅助工具类。在第5.2节中我们讲过可以将对数据库的共性操作抽象封装成数据操作类(例如DbHelperSQL),以便更好地复用和使代码简洁。数据层底层使用通用数据库操作类来访问数据库,最后完整的三层架构如图14-3所示。图14-3最后完整的三层架构数据库访问类是对ADO.NET的封装,封装了一些常用的重复的数据库操作。如微软的企业库SQLHelper.cs,动软的DBUtility/DbHelperSQL等,为DAL提供访问数据库的辅助工具类。通过以上分析

8、,我们知道如今常用的三层架构是个什么样子,同时,我们也知道了三层架构在使用过程中的一些演化过程。那么,为什么要这样分层,每层结构到底又起什么作用呢?我们继续往下看。14.1.2趣味理解:三层架构与养猪看新闻报道今年猪肉价格一路高涨,据说有人养猪都发财致富奔小康了,程序员都说写代码没前途了,还不如去养猪,不过,可别认为养猪没有技术含量,比写代码容易,其实养猪也大有学问。为了更好地理解三层架构,就拿养猪来做个例子吧。俗话说:“没吃过猪肉,还没见过猪跑啊!”。图14-4是三层架构化的养猪产业流水线趣味对此图。图14-4三层结构与养猪对比图14-3与图14-4,我们

9、可以看出:◆数据库好比猪圈,所有的猪有序地按区域或编号,存放在不同的猪栏里。◆DAL好比是屠宰场,把猪从猪圈取出来进行(处理)屠杀,按要求取出相应的部位(字段),或者进行归类整理(统计),形成整箱的猪肉(数据集),传送给食品加工厂(BLL)。本来这里都是同一伙人既管抓猪,又管杀猪的,后来觉得效率太低了,就让一部分人出来专管抓猪了(DBUtility),根据要求来抓取指定的猪。◆BLL好比食品加工厂,将猪肉深加工成各种可以食用的食品(业务处理)。◆Web好比商场,将食品包装成漂亮的可以销售的产品,展现给顾客(UI表现层)。◆猪肉好比Model,无论是哪个厂(层

10、),各个环节传递的本质都是猪肉,猪肉贯穿整个过程。◆通用类库Common相当于工人使用的各种工具,为各个厂(层)提供诸如杀猪刀、绳子、剪刀、包装箱、工具车等共用的常用工具(类)。其实,每个部门本来是可以自己制作自己的工具的,但是那样会使效率比较低,而且也不专业,并且很多工作都会是重复的。因此,就专门有人开了这样的工厂来制作这些工具,提供给各个工厂,有了这样的分工,工厂就可以专心做自己的事情了。当然,这里只是形象的比喻,目的是为了让大家更好地理解,实际的情况在细节上会有所不同。这个例子也只是说明了从猪圈到商场的单向过程,而实际三层开发中的数据交互是双向的,可取

11、可存。不过,据说有一种机器,把猪从这头赶进去,另一头

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

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

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