您的位置:首页 > 运维架构 > 网站架构

软件开发过程中的三层架构的深入解析和搭建(一)

2012-01-13 19:33 661 查看
一、什么是三层架构

(1)情景:

设想我们去餐厅吃饭,我们刚刚坐下来,就会有服务员过来为我们服务。服务员记下我们点的菜,然后将菜单传给厨房的大厨。大厨拿出后勤人员事先买好准备好的菜开始烹制,然后交给服务员端出来让我们享用。其实这个餐厅的饮食服务业务可以分解为三个部分来完成,每一部分各司其职。服务员只管接待顾客、向厨师传递顾客的需求;厨师只管烹炒不同口味、不同特色的美食;后勤工作人

员只管提供美食原料。他们三者分工合作共同为顾客提供满意的服务。在餐厅里为顾客提供服务期间,服务员、厨师、后勤工作人员,三者中任何一个人员发生变化时(例如请假或辞职)都不会影响其他俩者的正常工作,只对变化者进行重新调整即可正常营业。

(2)我们软件开发的三层架构与餐厅的服务流程类似。“三层架构”中的“三层”是指:表示层(User
Interface Layer-UI)
、业务逻辑层(BussinessLogic Layer-BLL)、数据访问层(Data Access
Layer-DAL)。三层架构的结构可以用如下图表示。



表示层:位于系统的最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,只提供软件系统与用户交互的界面。

业务逻辑层:位于表示层和数据访问层之间,专门负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是通过数据访问层从数据库读出这些数据。该层可以包括一些对”商业逻辑“描述的代码在里面。业务逻辑层是表示层和数据访问层之间的桥梁,负责数据处理和传递。

数据访问层:仅实现对数据的保存和读取操作。数据访问包括访问数据库系统、二进制文件、文本文档或是XML文档。数据访问层只负责对数据的访问存取工作。

二、三层架构各层的职责分配

表示层(UI):只接收用户输入的数据,并将业务逻辑层处理数据的结果显示给用户。

业务逻辑层(DLL):只负责对数据的业务处理,开发人员不要在业务逻辑层里写访问数据库的SQL语句。业务逻辑层可以验证用户输入的数据、缓存从数据库中读取的数据等等。

数据访问层(DAL):最好不要出现任何与业务逻辑和界面设计相关的代码。也就是说,要保证数据访问层中方法的功能仅负责存储或读取数据就可以了。

例如:

我们假设有一段登录的代码,则可以这样处理程序:表示层负责接收用户在界面输入的用户名和密码的数据,然后传给业务逻辑层。业务逻辑层对数据进行处理,给出用户登录正确判断的逻辑,需要访问数据库的时候就向数据访问发出访问数据的请求(调用数据访问层的函数)。数据访问层访问数据库并获得需要的数据,比如正确的登录用户名和密码,然后返回给业务逻辑层。业务逻辑层把给数据和用户输入的登录数据进行比较,如果比较的结果正确就将登录用户的详细信息最终返回给表示层。若比较的结果不正确,则返回错误信息并由表示层显示给用户。

三、使用三层架构的目的

三层架构是将应用程序的业务规则、数据有效性校验等工作放到了中间的业务逻辑层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过业务逻辑层与数据库访问层进行交换。开发人员可以将商业的业务逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这样一来如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了应用系统的

开发、更新和升级工作。

为了使软件的系统结构更清楚,软件开发工作分工更明确,有利于后期的维护和升级(只需要修改要修改的层,其实层可以复用)。尽管,它没有提升软件系统的性能,但从团队开发效率角度上来讲却可以感受到大不相同的效果。需要说明一下,三层架构并不仅仅专门用在数据库上,它是一种更加通用的软件架构设计理念。

四、使用三层架构的优缺点

三层架构的优点是可以充分把软件开发任务分解,有利于团队合作开发。例如,表示层的开发人员只需关注用户界面的设计和数据的输入和显示,他们不需要了解数据的存取和处理逻辑;业务逻辑层的开发人员则关注系统的数据处理逻辑,而不需要关心界面的设计、数据的存取和显示;而数据访问层的开发人员只需关注数据的存取操作,无需了解界面设计、数据的输入、显示和业务处理。这样分层团队开发更利于控制软件质量,充分发挥版本控制和单元测试。三层构架的软件适应性很强,一旦有什么需求变动可以很快的进行代码更改,因而代码的复用性很高。其中一层的代码改变不影响其他层。例如,用户界面的改变并不影响业务逻辑层和数据访问层,甚至访问不同数据库管理系统也只改变数据访问层的代码而不会影响业务逻辑层和表示层的代码。

三层架构的缺点就是代码量太多,执行速度慢。三层架构开发模式不适用于对执行速度要求非常高的系统,例如:在线订票,在线炒股等等。它比较擅长于商业规则经常变化的系统。

限于篇幅,将在下一博文中,指明三层架构的搭建的例子,欢迎大家一起来交流学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐