三层架构设计

三层架构设计

ID:40088877

大小:563.00 KB

页数:26页

时间:2019-07-20

三层架构设计_第1页
三层架构设计_第2页
三层架构设计_第3页
三层架构设计_第4页
三层架构设计_第5页
资源描述:

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

1、第八章三层架构设计在软件体系架构设计中,分层式结构是最常见,也是重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层、表示层。8.1三层架构概述与网络协议是分层一样,软件设计也要进行分层,分层的目的是为了实现“高内聚、低耦合”,采用“分而治之”的思想,把任务划分成子任务,逐个解决,易于控制,易于延展,易于多个进行项目合作。所谓的三层架构就是将整个业务应用划分为表示层、业务逻辑层和数据访问层,由数据访问层去访问数据库,十分有利于系统的开发、维护、部署和扩展。那么我们为什么要使用分层开发呢,它有什么独特的

2、优势呢?对于简单的应用来说,没有必要搞得那么复杂,可以不进行分层,但是对一个大型系统来说这样的设计的缺陷就很严重了。面向对象的程序设计模式追求的是代码的通用性,可移植性,可维护性、功能扩展,分层开发这种设计模式体现了面向对象的思想,而在页面的后台代码中直接访问数据库,实际上是打着面向对象的幌子却依然走着面向过程的老路。试问一下,我们用Access做后台开发的未分层程序,如果有一天因为数据量的增加,安全的需要等,数据库有Access变成了SQLServer,怎么办?网页代码文件中的所有程序都要重新修改,整个系统需要重新来做,这都是设计不合

3、理惹的祸。多层开发架构的出现很有效的解决了这样的问题。三层架构中,各个层之间的分工是很明确的。面向对象嘛,就像一个公司中的部门一样,每个部门的分工是不一样的,是哪个部门的任务就有哪个部门完成,对应的,各个部门的维护工作也是各自完成且不会影响其它的部门,至少影响不是很大,否则就只能说明分工还不合理。采用三层架构设计系统,各层高内聚、低耦合,通过有效的协作来完成系统的高效运行,三层架构中出现上面说的问题,由于其将数据访问操作完全限定在数据访问层内,数据库发生了改变,我们只需要修改数据访问层,其它的地方不用修改。三层架构中各层的功能是这样的。

4、1、表示层(UI):通俗讲就是展现给用户的界面,是用户在使用系统时的所见所得,表示层负责直接跟用户进行交互,用于数据录入,数据显示等。表示嘛,也就意味着侧重于做与布局和外观显示方面的工作,以及客户端的验证和处理等,并针对用户的请求去调用业务逻辑层的功能。2、业务逻辑层(BLL):针对表示层提交的请求,进行逻辑处理,如果需要访问数据库,就调用数据访问层的操作,对数据库进行操作。3、数据访问层(DAL):顾名思义,就是用于专门跟后台数据库进行交互,直接操纵数据库,实现数据库记录的增加、删除、修改、查询等。与具体数据库系统相关的对象只在这一层

5、被引用,如System.Data。System.Data.SqlClient等命名空间的对象,数据访问层之外的地方都不应该出现对这些对象的引用。三层架构的框架模型如图8-1所示。表示层业务逻辑层实体类SQLServerAccessServerOracleServer数据访问层图8-1三层架构框架模型理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。这个框架模型中,出现了一个自定义实体类,现在大家都倾向于用自定义实体数据形式在层与层之间以及层内模块间进行数据传输。实体类是现实世界中实体对象在计算机中的表示。一般来说,实体类可

6、以分为“贫血实体类”和“充血实体类”,前者仅仅保存实体的属性,而后者还包含一些实体间的关系与逻辑。我们这里所用的实体类都是“贫血实体类”。大多情况下,实体类和数据库中的表是对应的,实体类的属性和表的字段对应,但这并不是一个限制,有可以出现一个实体类对应多个表,或者交叉对应的情况。虽然现在分层的设计开发中,一般都是用实体类对应数据库的表。但是有些专家意见是慎用,因为如果把数据展示在页面上的话,从数据库中读出的DataSet本身就是XML形式,数据展示也用XML,如果用了实体类就多了一次转化。图7.2显示了实体对象在三层架构中传递数据的过程

7、。图8-2实体类在三层架构中的数据传递分层的思想讲完了,在多人合作开发系统的过程中,就可以按层来划分任务,只要设计的时候把接口定义好,开发人员就可以同时开发,而且不会发生冲突,做前台的人不需要关心怎么实现到数据库中去查询、更新、删除和增加数据,他们只需要去调用相应的类就可以了。做数据访问层的人也不需要知道前台的事,定义好与其它层交互的接口,规定好参数就行,各个层都一样,做好自己的工作就可以了。这样的系统,清晰性、可维护性和可扩展性都非常强大,测试和修改也比较方便。下面结合具体的实例,来学习三层架构的应用。仍以“BookShopOnNet

8、”数据库中顾客表“ShopUser”为例,用三层架构的方式实现对它的显示,以及增、删、改、查等操作。顾客表的结构为:ShopUser(UserIdintIDENTITY(1,1)NOTNULL,UserNa

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

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

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