软件开发

注册

 

发新话题 回复该主题

三层架构是哪三层 [复制链接]

1#
白癜风规模化治疗 https://disease.39.net/yldt/bjzkbdfyy/6195089.html

三层架构是哪三层分别如下:三层架构就是为了符合“高内聚,低耦合”思想,

表示层(UI);

业务逻辑层(BLL);

数据访问层(DAL)三层架构。

各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。

三层架构区分层次的目的是为了“高内聚,低耦合”。开发人员分工更明确,将精力更专注于应用系统核心业务逻辑的分析、设计和开发,加快项目的进度,提高了开发效率,有利于项目的更新和维护工作。

含义:

三层架构主要是指将业务应用规划中的表示层UI、数据访问层DAL以及业务逻辑层BLL,其分层的核心任务是“高内聚低耦合”的实现。在整个软件架构中,分层结构是常见和普通的软件结构框架,同时也具有非常重要的地位和意义。这种三层架构可以在软件开发的过程中,划分技术人员和开发人员的具体开发工作,重视核心业务系统的分析、设计以及开发,提高信息系统开发质量和开发效率,进而为信息系统日后的更新与维护提供很大的方便。

三层架构分层方式:

1、数据层不包含任何代码,只有数据库,还有相关的存储过程。这种模式下,数据层看起来就变得很简单了。只包含所建立的数据库和一些存储过程(注意是存储过程)。其实这些存储过程的建立也是相当复杂的,因为它们可以完成除数据访问外的其他一些很强大的功能,如分页、实现搜索算法等。数据访问的逻辑就都放在业务层,当然业务层还包含其他一些逻辑代码。我们来看一个示例,假设数据库里有一个表BOOKS(书),建立一个存储过程GetAllBooks,用来读取书的信息,这样在业务层里编一个方法GetBookS()和一个公用数据库访问类,GetBooks()就通过数据库访问类打开连接,执行在存储过程,返回数据(返回类型可以是DataT-able,DataSet,DataReader或者实体类)。业务层单独编译成一个或者几个DLL文件。接着就是表示层了,表示层通过调用GetBookS()返回数据绑定在相关的控件里。业务层的方法都是在表示层调用。一般来说book.aspx和book.aspx.cs都是表示层的内容,所有前台的设计、相关控件、数据缓存都是属于表示层。

2、数据层还包含所有公共数据访问代码。这种模式和前一种差别不大,主要是把数据访问代码留到数据层。这样可以很方便地实现对多数据库的支持。业务逻辑层直接调用数据层的相关访问数据的代码,完全不必了解底层是什么数据库。其他和前一种没什么分别。

3、所有数据读取都放在数据层。这种模式下像前面所述的GetBooks()方法都是放在数据层,在业务层再定义一个GetBookS()方法以供表示层调用。这种模式下业务层不但不必了解底层是什么数据库,而且连数据库的结构都不必了解了,这是最标准的三层架构了,在Microsoft的PetShop4.0里就是这种模式。

三层架构的体系结构:

表示层和业务逻辑层之间用对象模型的实体类对象来传递数据,业务逻辑层和数据访问层之间用对象模型的实体类对象来传递数据,数据访问层通过.NET提供的ADO.NET组件来操作数据库,或者利用SQLServer数据库服务器的存储过程来完成数据操作。

这种分层体系结构具有以下四个优点:

(1)避免了表示层直接访问数据访问层,表示层只和业务逻辑层有联系,提高了数据安全性;

(2)有利于系统的分散开发,每一个层可以由不同的人员来开发,只要遵循接口标准,利用相同的对象模型实体类就可以了,这样就可以大大提高系统的开发速度;

(3)方便系统的移植,如果要把一个C/S的系统变成B/S系统,只要修改三层架构的表示层就可以了,业务逻辑层和数据访问层几乎不用修改就可以轻松的把系统移植到网络上;

(4)项目结构更清楚,分工更明确,有利于后期的维护和升级。

分享 转发
TOP
发新话题 回复该主题