1/62
文档分类:IT计算机

三层架构设计.doc


下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

下载所得到的文件列表
三层架构设计.doc
文档介绍:
三层架构设计.doc三层架构设计
第八章 三层架构设计
在软件体系架构设计中,分层式结构是最常见,也是重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层、表示层。
8.1三层架构概述
与网络协议是分层一样,软件设计也要进行分层,分层的目的是为了实现“高内聚、低耦合”,采用“分而治之”的思想,把任务划分成子任务,逐个解决,易于控制,易于延展,易于多个进行项目合作。
所谓的三层架构就是将整个业务应用划分为表示层、业务逻辑层和数据访问层,由数据访问层去访问数据库,十分有利于系统的开发、维护、部署和扩展。
那么我们为什么要使用分层开发呢,它有什么独特的优势呢?
对于简单的应用来说,没有必要搞得那么复杂,可以不进行分层,但是对一个大型系统来说这样的设计的缺陷就很严重了。面向对象的程序设计模式追求的是代码的通用性,可移植性,可维护性、功能扩展,
分层开发这种设计模式体现了面向对象的思想,而在页面的后台代码中直接访问数据库,实际上是打着面向对象的幌子却依然走着面向过程的老路。
试问一下,我们用Access做后台开发的未分层程序,如果有一天因为数据量的增加,安全的需要等,数据库有Access变成了SQL Server,怎么办?网页代码文件中的所有程序都要重新修改,整个系统需要重新来做,这都是设计不合理惹的祸。
多层开发架构的出现很有效的解决了这样的问题。
三层架构中,各个层之间的分工是很明确的。面向对象嘛,就像一个公司中的部门一样,每个部门的分工是不一样的,是哪个部门的任务就有哪个部门完成,对应的,各个部门的维护工作也是各自完成且不会影响其它的部门,至少影响不是很大,否则就只能说明分工还不合理。采用三层架构设计系统,各层高内聚、低耦合,通过有效的协作来完成系统的高效运行,三层架构中出现上面说的问题,由于其将数据访问操作完全限定在数据访问层内,数据库发生了改变,我们只需要修改数据访问层,其它的地方不用
修改。
三层架构中各层的功能是这样的。
1、表示层(UI):通俗讲就是展现给用户的界面,是用户在使用系统时的所见所得,表示层负责直接跟用户进行交互,用于数据录入,数据显示等。表示嘛,也就意味着侧重于做与布局和外观显示方面的工作,以及客户端的验证和处理等,并针对用户的请求去调用业务逻辑层的功能。
2、业务逻辑层(BLL):针对表示层提交的请求,进行逻辑处理,如果需要访问数据库,就调用数据访问层的操作,对数据库进行操作。
3、数据访问层(DAL):顾名思义,就是用于专门跟后台数据库进行交互,直接操纵数据库,实现数据库记录的增加、删除、修改、查询等。对这些对象的引用。三层架构的框架模型如图8-1所示。
表示层
业务逻辑层
实体类
SQL Server
Access Server
Oracle Server
数据访问层
图8-1 三层架构框架模型
理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。
这个框架模型中,出现了一个自定义实体类,现在大家都倾向于用自定义实体数据形式在层与层之间以及层内模块间进行数据传输。实体类是现实世界中实体对象在计算机中的表示。一般来说,实体类可以分为“贫血实体类”和“充血实体类”,前者仅仅保存实体的属性,而后者还包含一些实体间的关系与逻辑。我们这里所用的实体类都是“贫血实体类”。
大多情况下,实体类和数据库中的表是对应的,实体类的属性和表的字段对应,但这并不是一个限制,有可以出现一个实体类对应多个表,或者交叉对应的情况。
虽然现在分层的设计开发中,一般都是用实体类对应数据库的表。但是有些专家意见是慎
用,因为如果把数据展示在页面上的话,从数据库中读出的DataSet本身就是XML形式,数据展示也用XML,如果用了实体类就多了一次转化。
图7.2显示了实体对象在三层架构中传递数据的过程。

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