【三层架构】基础总结
来源:互联网 发布:免费的电子书软件 编辑:程序博客网 时间:2024/05/29 12:32
前言
之前很多应用程序的开发都是基于两层结构的,它们的特点是:数据库访问和用户类型判断逻辑放在一起实现;用户界面层直接调用数据访问实现;整个系统功能放在同一项目中实现。它的原理是用户界面层直接与数据库进行交互,还要进行业务规则/合法性校验等工作。两层结构的模型图如下所示:
这种结构存在着很多局限性,比如:一旦用户的需求发生变化,应用程序都需要进行大量修改,甚至需要重新开发,给系统的维护和升级带来了极大的不便;用户界面层直接访问数据库,会带来很多安全隐患。为了克服两层结构的局限性提出了三层结构。
什么是三层架构
所谓三层,相对于两层,是在客户端与数据库之间加入了一个中间层,也叫组件层。而这里所说的三层架构,不是指这种物理上的三层,不是简单放置三台机器就是三层架构,也不仅仅B/S应用才是三层架构。
我们本文所说的三层架构,是指逻辑上的三层,即:使这三个层放置在一台机器上。三层架构的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交换。
中间层包括业务逻辑层和数据访问层,所以分开的话,如下图所示:
所以可知,我们说三层架构的定义为:通常意义上就是将整个业务划分为三个层次,分别为界面层(User Interface Layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data Access Layer)。
为什么要用三层
区分层次的目的是为了实现“高内聚,低耦合”的思想。在软件系统架构设计中,分层式架构是最常见,也是最重要的一种Web下的应用结构。
三个层次的功能
界面层:也可以叫做表示层,只负责显示和采集用户的操作。
数据访问层:负责数据库的访问,简单的说就是实现对数据表的Select、Insert、Update、Delete操作。
业务逻辑层:对数据层的操作。通过获取UI传来的操作指令,对数据业务逻辑进行处理,处理完成后,返回必要的数据给UI。如果说数据层是积木,那逻辑层就是对这些积木的搭建。
三层的引用关系
数据访问层不能引用界面层和业务逻辑层;
业务逻辑层需要引用数据库访问层;
界面层直接引用业务逻辑层,可能会间接引用数据库访问层;
三层架构优缺点
优点:有利于实现各层逻辑的复用;在后期的维护中大大降低了维护成本和维护时间;便于开发人员之间的合作,只要遵循一定的接口标准就可以进行并行开发了。
缺点:降低了系统的性能。很多业务本可以直接访问数据库的,如今却必须通过中间层来完成对数据库的 访问;有时会导致级联的修改。如果在UI层需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的BL层和DA层中都需要增加相应的代码。
小结
三层架构一般用于复杂程序的设计,如果是很简单的程序,完全没必要用。不过,何为复杂的程序?何为简单的程序?这就需要根据自己的经验来判断了,做的多了,才能明白什么时候该用,什么时候不该用。想要将它用在刀刃上,还是要在实践中不断的去总结和思考。
- 【三层架构】基础总结
- Delphi三层架构基础
- 三层架构基础概念
- java基础-三层架构
- 三层架构总结
- 三层架构总结
- 三层架构总结
- 三层架构理论总结
- 三层架构学习总结
- C#三层架构总结
- 三层架构总结
- 【三层架构】三层总结(知识型)
- 【三层架构】三层总结(代码型)
- 三层网络架构实例基础
- 对三层架构简单总结
- 三层架构视频学习总结
- 三层架构:登录实例总结
- 【三层架构】对于三层架构的认识和总结
- usaco光纤通信(并查集)
- 句柄类
- hdu 2104 K-th Number(静态求区间第k小+整体二分)
- 互联网产品的需求分析
- POJ 3126 Prime Path
- 【三层架构】基础总结
- Linux基本操作01
- leetcode 066 plus one
- maven
- python基础-将python作为计算器
- uva 1386
- hdu1233——还是畅通工程(最小生成树)
- 我的C++学习路线
- Android用命令行来操作模拟器