标签:
一、什么是三层架构
1.概念
三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
分层(tier) | 概念 |
表现层(UI) | 通俗讲就是展现给用户的界面,用于显示数据和接受用户输入的数据;即用户在使用一个系统的时候他的所见所得。 |
业务逻辑层(BLL) | 针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。是表示层和数据访问层之间的桥梁。 |
数据访问层(DAL) | 该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。 |
数据库实体类(Entity) | 对数据对象进行封装,也有一些简单的功能 |
2.各层的作用
分层 | 作用 |
表现层(UI) | 主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。 |
业务逻辑层(BLL) | 主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。 |
数据访问层(DAL) | 主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务 |
由上表可以看出,多出的一个数据库实体类(Entity),他在三层中并不是作为一层而存在的,而是作为一个类库,起到封装数据库表的作用。
3.各层以及类库之间的关系
二、为什么要用三层架构?
1.分析
层次结构在现实社会中随处可见。记得有个笑话讲有个村长得意的向他的老婆吹牛:“全中国比我官大的只有四个人,乡长、县长、省长和国务院总理”,这个笑话体现了真实社会的分层现象,社会人群会分层,公司管理人员结构也会分层,
楼房是分层的,甚至做包子的笼屉也是分层的,虽然分层的目的各有不同,但都是为了解决某一问题而产生的,所以分层架构是为了解决某一问题而产生的解决方案。
社会分工的优势:让适合的人做自己最擅长的事情,缩短劳动时间,提高劳动效率。人尽其才,物尽其用。软件开发也一样,开发小项目,也许分层与不分层也许看不出多大的差别来,分层可能显得更加啰嗦,但是当开发一个复杂的项目时,分层的优势就显示出来了。
举个例子:我们重构机房收费系统,需要进行数据库的访问,在不分层的情况下,就会出现大量重复的代码,无非就是数据库的增、删、改、查,这些重复的代码可以适用于多个模块,就是字段名和数量不一样。光敲这些重复的代码就得花去我们不少的时间,何况我们的机房收费系统还只是一个不大的项目。如果是一个较大的项目呢?
每一个事物有优点必有缺点,分层架构的缺点主要有以下两点:
1)、分层也一样,如果不分层,很多业务可以直接访问数据库,获得数据,而现在却必须通过中间层来访问,从而降低了系统运行性能。
2)、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
不过分层架构的利大于弊。
在软件体系架构中,分层式结构是比较容易懂的也是最常见的一个结构,而三层结构又是分层结构里面最常见的一种分层方式,也是Microsoft推荐的分层式结构。分层式结构还有其他模式例如MVC,了解和熟悉三层架构之后,学习其他架构会显得比较容易,让我们先从最容易理解的学起。
标签:
原文地址:http://www.cnblogs.com/tonz/p/4558473.html