编程很好玩!
编程很好玩!

导航

 

18.2  三层结构开发模式

三层结构是基于模块化程序设计的思想,为实现分解应用程序的需求,而逐渐形成的一种标准模式的模块划分方法。三层架构的优点在于不必为了业务逻辑上的微小变化而迁至整个程序的修改,只需要修改商业逻辑层中的一个函数或一个过程;增强了代码的可重用性;便于不同层次的开发人员之间的合作,只要遵循一定的接口标准就可以进行并行开发了,最终只要将各个部分拼接到一起构成最终的应用程序。本节将主要介绍三层结构的基本概念及如何搭建三层结构。

18.2.1  三层结构概念

三层结构通常是指数据访问层、业务逻辑层和表示层。三层结构之间的关系如图18-2所示。

表示层位于最上层,用于显示和接收用户提交的数据,为用户提供交互式的界面。表示层一般为Windows窗体应用程序或Web应用程序。

业务逻辑层是表示层和数据访问层之间沟通的桥梁,主要负责数据的传递和处理。

数据访问层主要实现对数据的读取、保存和更新等操作。

 

在三层结构中,各层之间相互依赖,表示层依赖于业务逻辑层,业务逻辑层依赖于数据访问层。

 

 

18.2.2 如何搭建三层结构

 

本节将通过一个简单的登录功能实现,讲述如何搭建三层结构。

1.搭建数据访问层

(1)打开VS 2005开发环境,依次选择"文件"→"新建"→"项目"命令,如图18-3所示。

 

(2)在打开的"新建项目"对话框中,选择项目类型为"Visual Studio解决方案",选择模板为"空白解决方案"。然后填写解决方案的名称为"MyBookShop",并指定保存位置,如图18-4所示。

 

(3)在"解决方案资源管理器"中,在解决方案名称上单击鼠标右键,在弹出的快捷菜单中选择"添加"→"新建项目"命令,如图18-5所示。

 

(4)在打开的"新建项目"对话框中,选择项目类型为"Visual C#",选择模板为"类库"。填写项目的名称为"MyBookShop.DAL",该项目用于实现数据访问层。此时项目的保存位置已经默认输入了,是刚才创建空白解决方案时产生的路径,如图18-6所示。

 

 

2.搭建业务逻辑访问层

搭建业务逻辑层的步骤与搭建数据访问层类似,不同的是需要重新填写项目名称为"MyBookShop.BLL",如图18-7所示。

 

3.搭建表示层

(1)在"解决方案资源管理器"中,在解决方案名称上单击鼠标右键,在弹出的快捷菜单中选择"添加"→"新建网站"命令,如图18-8所示。

 

(2)在打开的"添加新网站"对话框中,选择"ASP.NET网站",选择位置为"文件系统",并设置网站的路径,如图18-9所示。

 

在三层结构开发中,通常还会使用模型层。模型层包含所有与数据库中的表相对应的实体类。表示层、业务逻辑层和数据访问层三层之间通过传递实体对象来达到数据传递的目的。

创建模型层的步骤与搭建业务逻辑层和数据访问层类似,不同的是需要重新填写项目名称为"MyBookShop.Models",如图18-10所示。

 

此时,在"解决方案资源管理器"中,三层结构的基本框架如图18-11所示。

4.添加各层之间依赖关系

此时,虽然三层结构的基本框架已经搭建成功,但是各层之间是独立的。只有添加依赖关系,才能让它们相互协作。

(1)添加表示层对业务逻辑层及模型层的依赖。在"解决方案资源管理器"中,在表示层上单击鼠标右键,在弹出的快捷菜单中选择"添加引用"命令,如图18-12所示。

 

 

 

(2)在打开的"添加引用"对话框中,选择"项目"选项卡,选中项目名称为"MyBookShop.BLL"和"MyBookShop.Models"的两个项目,单击"确定"按钮,如图18-13所示。

(3)使用上述方法在业务逻辑层中添加对数据访问层和模型层的依赖,以及数据访问层对模型层的依赖。

 

该部分视频教程位置如图18-14所示。

 

至此,三层结构及各层之间的依赖关系创建完毕。下面以登录为例,测试各层之间如何协同工作的。

 

1)编写实体类User.cs

在模型层中,将默认的类名Class1.cs重命名为"User.cs",该实体类与数据库BookShop中的表Users相对应。实体类User.cs中部分代码如下:

 
 

2)编写数据访问类UserService

针对模型层中的每个实体类,数据访问层有一个对应的数据访问类。例如,针对User实体类,创建一个对应的UserService类,用于对数据表Users的数据处理。

在UserService类中添加一个根据登录名进行查询的方法,代码如下:

 

 

在上述代码中,数据访问类中使用了DBHelper类,该类包含了常用的对数据库进行操作的方法。由于篇幅所限在此不列出具体代码,读者可以查看源代码。

3)编写业务逻辑类UserManager

针对模型层中的每个实体类,业务逻辑层中也有一个对应的类。例如,针对User实体类,创建一个对应的UserManager类。

在UserManager类中添加用于登录验证的业务方法,其代码如下:

 
 

4)编写表示层

(1)创建页面Login.aspx,其设计视图如图18-15所示。

 

(2)双击"登录"按钮,生成其Click事件,并在代码后置文件Login.aspx.cs中编写事件处理程序,其代码如下:

 
  

运行程序前,还需设置启动项目。在"解决方案资源管理器"中的表示层上单击鼠标右键,在弹出的快捷菜单中选择"设为启动项目"命令,将表示层设置为启动项目,如图18-16所示。

   

运行程序,输入登录名"admin",输入密码"123456",单击"登录"按钮后,页面跳转到Default.aspx,显示登录成功。

posted on 2010-01-16 13:48  lzp  阅读(3696)  评论(1编辑  收藏  举报