三层结构就是指将整个业务应用划分为:表现成、业务逻辑层、数据访问层。分层的目的主要就是为了实现“高内聚低耦合”的思想。
表现层(UI)
表现层用于用户接口的展示,通俗来说就是展示给用户的界面,以及用业务层的类和和对象来驱动这些接口。
业务逻辑层(BLL)
业务层用户访问数据层,从数据层取数据、修改数据以及删除数据,并且将结果返回给表现层。
数据访问层(DAL)
数据层是数据库或者数据源,该层做事务直接操作数据库,针对数据的添加、删除、修改等等。
三层结构的解释
所谓三层体系结构,是在客户端与数据库之间加入了一个中间层,也叫组件层。这里说的三层体系,不是指物理上的三层,不是简单的放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层系统结构,三层是指逻辑上的三层,就是这三层放到一台机器上。三层体系的应用程序将业务规则、数据访问、合法性校检等工作放在了中间层进行处理。通常情况下,客户端不直接与数据库进行交互。
开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了应用系统的开发、更新和升级工作。
为什么要分三层
我们用三层结构主要是使项目结构更加清楚,分工更明确,有利于后期的维护和升级。它未必会提升性能,因为当子程序模块未执行结束时,主程序模块只能处于等待状态。这说明将应用程序划分层次,会带来其执行速度上的一些损失。但从团队开发效率角度上来讲,却可以感受到大不相同的效果。
优点:
1、无需开发客户端软件,维护和升级方便。
2、可以跨平台操作。
3、具有良好的开放性和可扩充性。
4、便于数据库移植。
5、安全性好。
6、资源重用性好。
缺点:
有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
相对于不分层的编程方法,使用三层或多层架构的应用于程序运行效率低、代码量大、难度增加。