三层架构

  1. 简介

三层架构是从整个业务应用角度对程序的划分,其分层逻辑来源于“高内聚低耦合”的思想。三层分别为:表现层,业务逻辑层,数据访问层(持久化层)。

  1. 内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
  2. 耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
  1. 各层解析

  1. 表现层:用户看到的界面,作用就是接收用户提交的请求数据,反馈程序的响应数据给用户。目的提供可交互的操作界面。
  2. 业务逻辑层:“具体问题,具体分析”。不同请求做出不同响应。对数据层的一中整合方式。
  3. 数据访问层:提供对数据库操作的多种途径。
  1. 三层特点

  1. 优点:
  1. 解耦。上层只依赖下一层,便于发现和修改BUG。
  2. 简化复杂问题:各层分工明确,将复杂问题简化了。
  3. 逻辑复用:业务接口没变,业务层和数据层能直接用。
  4. 便于开发:各层接口在开发前规定好,可以独立开发。
  5. 方便部署:将各层开发成组件,则可以独立部署。
  1. 缺点
  1. 降低系统性能。不采用分层结构,可以直接造访数据库,获取数据。现在必须通过中间层来完成。
  2. 导致级联的修改。在表现层增加一个功能,需要在业务和数据层都增加相应的代码。

四层架构

四层架构有两种方式。

第一种形式:

该架构比三层多了一个系统服务层:提供公共的服务性代码,供各个操作层使用。

第二种方式:

五层架构

本质上五层架构并没有比上述架构有太大差别,只是进一步细化了。

  1. 用户界面层:即网页,用户能实实在在看得到的,能进行操作的界面;
  2. 控制层:控制用户界面层和业务逻辑层进行数据交互,
  3. 业务逻辑层:针对具体问题的操作,对业务逻辑的处理;
  4. 数据持久层:控制事务,直接操作数据库,对数据进行CRUD操作(即数据的增、删、改、查),即Hibernate或MyBatis负责与数据库的通信;
  5. 系统服务层:即提供公共的服务性功能,供各个操作层使用。

java三层、四层和五层结构介绍相关推荐

  1. Java-GUI编程实战之管理系统 Day3【学生管理系统GUI设计、学生管理系统增删改查、项目MVC结构介绍、Java技能图谱】

    视频.课件.源码[链接:https://pan.baidu.com/s/13ffqGDzH-DZib6-MFViW3Q 提取码:zjxs] Java-GUI编程实战之管理系统 Day1[项目开发流程. ...

  2. java三层架构项目事例_三层架构实例

    一.概要 在我的上一篇博客中,我们谈了谈分层,到底为什么分层(http://blog.csdn.net/shan9liang/article/details/6836300) 这篇博客,准备用一个小D ...

  3. 【Java架构师提升】java三层架构原理与作用小结

    这篇文章主要对Java三层架构的概念.作用等进行了介绍,需要的朋友可以参考下 三层架构 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI). ...

  4. 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍

    Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...

  5. java web项目的目录结构以及各文件夹的功能是什么eclipse的web目录及各作用

    创建一个javaweb项目的大致目录结构就是这样的,因为是第一次新建,我们的目录只包含了一些基础的文件夹. 然后我们看一下他们的功能是什么. test:项目名称(也可以是其他名称,尽量和自己创建的项目 ...

  6. 六十一、分析Springboot中的项目结构介绍

    @Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 文章目录 spring项 ...

  7. 【笔记】spring的注解回顾,springboot-restful项目结构介绍 springboot-freemarker ⼯程配置详解

    注解 学Spring boot有一阵子了,总结一下它的注解. @Controller :修饰class,⽤来创建处理http请求的对象 @RestController :Spring4之后加⼊的注解, ...

  8. tcp 发送数据长度比预设缓存大_一文秒懂 TCP/IP实际五层结构(下篇)

    点击上方蓝字关注我们! 引言 本运维老狗在TCP/IP实际五层结构的上篇和中篇中详细讲解了TCP/IP实际结构,以及以太网协议.IP协议.和UDP协议.有同学留言催更,迫切的想看本老狗对TCP协议的讲 ...

  9. java后端项目整体代码结构

    文章目录 前言 一.java后端项目整体代码结构是什么样子的? 二.写完咋调试呢? 总结 前言 作为第一次参加java项目,在接触项目的第一周里也是遇到各种傻白的问题,如项目代码文件的整个结构是什么样 ...

最新文章

  1. h.264的NAL和VCL
  2. 微软服务器应用软件,HTTP 服务器示例应用程序
  3. 汤家凤高等数学基础手写笔记-无穷级数
  4. C#.net调用动态库dll注意事项
  5. XgBoost使用及调参教程
  6. 《软件构架实践》阅读笔记4
  7. 机器人动力学与控制学习笔记(二)————机器人动力学建模
  8. lintcode 丢鸡蛋
  9. 健康管理软件 PHP,健康管理信息系统
  10. 计算机的音乐怎么按出来怎么办,音频管理器一直跳出来怎么处理啊
  11. yoga book android rom,【发帖王】YOGA BOOK Android版玩机技巧
  12. mysql中括号_如何快速学习mySQL数据库常规通配符及运算符的用法?
  13. JWT 避坑指南:nbf 验签失效问题的解决
  14. Windows下主机名和IP映射设置
  15. JavaScript自动生成博文目录导航
  16. 手机号码界面输入数字查看手机信息
  17. 联想y7000电脑未正确启动_联想拯救者Y7000P装win7系统蓝屏|联想Y7000P重装系统蓝屏怎么解决...
  18. AtCoder Beginner Contest 242——1111gal password
  19. 二维数组 --> 概念
  20. 博客园 页首html代码,可爱的博客园样式美化、自定义博客园主题样式

热门文章

  1. kafka代码初步涉猎,用代码发送消息到客户端
  2. lotus notes 闪退_黑鲨研习win7系统Lotus Notes邮箱闪退的技巧
  3. 条码打印软件如何打印Code128码
  4. cube-ui里面如何给create-api设置样式
  5. 实施一个光明与黑暗的主题,以持久的React
  6. C语言编码图书借阅系统
  7. Linux下静态库(.a)和动态库(.so) 的生成与使用
  8. FairyGUI基本操作和功能实现
  9. java设计程序实验报告,实验报告一
  10. Kggle比赛之Artifical Neural Networks Applied to Taxi Destination Prediction