什么是三层架构?

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层(又称为持久层)、业务逻辑层(又或称为领域层)、表示层。

表示层(UI层):

表示层也称为界面层,位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。

业务逻辑层(BLL层):

负责关键业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据验证都需要在此做出处理。主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。

数据访问层(DAL层):

主要负责对数据库的直接访问,为业务逻辑层提供数据,根据传入的值来操作数据库,增、删、改、查。

为什么要用三层架构呢?

1.团队开发,便于管理

三层架构使得合作开发成为可能,由于各层相互独立,一个小组只需负责一小块就可以。结构化的编程方法面对大型的项目会感到力不从心,因为结构化设计必定会使程序变的错综复杂。逻辑主要在BLL层,就使得UI层也就是客户端不承担太多的职责,即使更新业务逻辑,也无需修改客户端,不用重新部署。

2.解耦

上一层依赖于下一层,如果测试下一层没有问题,那么问题就只有可能发现在本层了,便于发现和改正BUG。体现了“高内聚,低耦合”的思想。比如楼房是分层的,我们要到哪一层楼非常方便,只需在电梯里按下那个楼层的层号即可。而三层架构就好比开发的软件“楼”,哪层出现Bug,哪层有问题,我们作为开发人员能够随时找到,并修正。 各个层次分工明确,将一个复杂问题简单拆分了。

3.代码的复用和劳动成本的减少

分层的根本在于代码的复用和劳动成本的减少。分层的最理想化的结果是实现层与层之间的互不依赖的内部实现,所谓的即插即用!

三层架构也是有一定的缺点,但是总的来说,利大于弊

JavaWeb三层架构相关推荐

  1. JavaWeb三层架构详解

    什么是三层架构? 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer).业务逻辑层(Business L ...

  2. JavaWeb三层架构的理解/三层架构的优缺点/三层架构与MVC的区别

    1.三层架构 我们的开发架构一般都是基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B/S架构,也就是浏览器服务器.在JavaEE开发中,几乎全都是基于B/S架构的开发.那么在B/S架构 ...

  3. 基于JavaWeb三层架构的OA管理系统

    本系统是一个类似于培训学校的一个管理系统,系统角色有员工,学生. 首页 它的左侧是后台管理系统的功能界面,右侧是前面的通过数据库查询的一个月或者是一年的统计信息,下面柱状图个折线图采用的是echart ...

  4. Maven项目+MVC三层架构+Mysql+Tomcat+私教预约系统前后端(私教、用户、管理员)+可以用于学习SSM框架、javaweb、maven项目入门

    Maven项目+MVC三层架构+Mysql+Tomcat+私教预约系统前后端(私教.用户.管理员)+可以用于学习SSM框架.javaweb.maven项目入门 可以用于课程设计.毕业设计的知识点入门学 ...

  5. JavaWeb项目+MVC三层架构+Mysql+Tomcat+汽车配件销售系统前后端+可以用于学习javaweb项目入门

    JavaWeb项目+MVC三层架构+Mysql+Tomcat+汽车配件销售系统前后端+可以用于学习javaweb项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资源仅用于javaweb网 ...

  6. 简述mvc和java三层框架,springMVC设计模式和javaWeb三层框架

    一.springMVC  设计模式 MVC模式是软件工程中的一种能够软件架构模式,把软件分为三个基本部分,模型(model).视图(view)和控制器(controller).使程序简化,更加直观. ...

  7. 物流快递系统前、后端+Java语言+SpringBoot项目+MVC三层架构+maven+Mysql+Tomcat+可以用于学习SpringBoot项目入门

    物流快递系统前.后端+Java语言+SpringBoot项目+MVC三层架构+Mysql+Tomcat+可以用于学习SpringBoot项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资 ...

  8. 关于MVC与三层架构、个人总结网上杂七杂八得出的最终成果、asp.net (core) MVC、JavaWeb的MVC

    阅读本文必须明白的事情 首先需要明白的是不同语言实现的MVC与三层架构对应的层是不一样的!!! 拿.net来说,.net实现MVC与其他语言的MVC具体实现是不同的,asp.net MVC与 MVC ...

  9. 关于写javaweb项目,遇到的问题:三层架构

    关于写javaweb项目,遇到的问题 三层架构: 表示层(UI)业务逻辑层(BLL) 数据访问层(DAL) 高内聚,低耦合. 高内聚:一个模块内各元素彼此结合紧密程度高(只负责单一功能) 低耦合:简单 ...

最新文章

  1. 流程图函数’怎么画_原来函数可以这么美!
  2. Android杂谈--layout的横竖屏处理
  3. 王帅:深入PHP内核(二)——SAPI探究(精辟)
  4. th:text=“${user?.name}“ ${?.}
  5. python if _name_==_main__如何理解Python中的if __name__ == ‘__main__’
  6. javaweb实训第六天下午——Mybatis基础
  7. web框架 http协议
  8. 解决递归求快速排序时间复杂度计算
  9. MySQL数据库软件及SQL简介
  10. DeFi发币潮之下,散户真能赚到钱吗?
  11. allegro 对齐元器件_Allegro怎么对元器件进行对齐
  12. 添加系统调用的方法,2.6.35(没有测试)
  13. 苹果遭遇史上最严厉的泄密:自家的iOS源代码居然泄漏了
  14. AI人工智能学习准备之路线图
  15. 学习使用js链接websocket服务断线重连的方法
  16. python正则检验_Python 检测生僻字
  17. B2C销售网站的设计与实现
  18. wxWidgets教程(14)——书签控件wxBookCtrl
  19. 解决github上的图片无法显示的问题
  20. SpringBoot仿牛客论坛项目实战

热门文章

  1. phpQuery的使用
  2. 【三维重建】结合深度学习的三维重建/SLAM(一)
  3. 遗传算法及其matlab实现(工具箱及非工具箱)
  4. Java IDEA pom 报错java.lang.OutOfMemoryError: GC overhead limit exceeded 基本所有依赖都报错(除了JDK自带String等)解决详
  5. 如何查看python之禅_Python 之禅
  6. 【Python数据科学快速入门系列 | 04】Numpy四则运算、矩阵运算和广播机制的爱恨情仇
  7. 2021年07月-2022年1月币种涨幅跌幅排行
  8. 关于NG-ZORRO的历史
  9. 我的世界龙珠服务器配置文件修改,【更新】【龙珠】【DragonBlockC】配置文件修改...
  10. 服务器坏了怎么维修,服务器怎么老坏,坏了也没人修???