三层架构(3-tierarchitecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(Presentation layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。

MVC也分为三层,但不是我们所说的三层架构。MVC只相当于三层架构中的UI。

UI(表现层):主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。

BLL:(业务逻辑层):UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等。

DAL:(数据访问层):与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。(当然这些操作都是基于UI层的。用户的需求反映给界面(UI),UI反映给BLL,BLL反映给DAL,DAL进行数据的操作,操作后再一一返回,直到将用户所需数据反馈给用户)

  • UI只负责显示和采集用户操作,不包含任何业务相关的逻辑处理
  • BLL负责处理业务逻辑。通过获取UI传来的用户指令,执行业务逻辑,在需要访问数据源的时候,直接交个DAL进行处理。处理完成后,返回必要数据给UI。
  • DAL只提供基本的数据访问,不包含任何的业务逻辑

三层架构介绍我就讲到这里,具体的其优缺点我就不一一讲了。

什么是三层架构?简单的介绍三层架构!相关推荐

  1. 快速 开发平台 架构_快速介绍清洁架构

    快速 开发平台 架构 by Daniel Deutsch 由Daniel Deutsch 快速介绍清洁架构 (A quick introduction to clean architecture) I ...

  2. 安全架构-md5算法介绍

    安全架构-md5算法介绍 安全架构知识,我们必不可少离不开的就是md5,包括接口签名,文件摘要,密码加密等等.本文介绍md5算法. 文章目录 安全架构-md5算法介绍 一.md5是什么? 二.特点 三 ...

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

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

  4. MVC与三层架构的联系及三层架构实现学生注册功能

    MVC与三层架构的联系及三层架构实现学生注册功能 三层架构的逻辑关系: MVC和三层架构的联系: 三层架构实现学生注册功能的逻辑: 学生注册页面: 输入学生信息: 完成学生注册: 代码实现: add. ...

  5. 自己动手写处理器之第一阶段(3)——MIPS32指令集架构简单介绍

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版).今天是第四篇.我尽量每周四篇 1.4 MIPS32指令集架构简单介绍 本书设计的处理器遵循MIPS32 Release 1架构,所以 ...

  6. 华为无线三层无线简单配置

    三层无线简单配置 三层wlan 整个实验的案例在https://download.csdn.net/download/shuai0845/11234860欢迎大家下载 ac管理和ap管理和业务vlan ...

  7. 公司网络架构简单介绍

    公司网络架构简单介绍 公司服务器架构简单介绍: CDN:租用的,用于提高用户访问速度 前边两台LVS:实现负载均衡和高可用 三台Nginx服务器提供Web服务 三台Tomcat服务器当动态Web服务 ...

  8. JDO 的架构作一个简单的介绍

    JDO快速入门 Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语句 ...

  9. DL之MobileNetV2:MobileNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之MobileNet V2:MobileNet V2算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 MobileNetV2算法的简介(论文介绍) MobileNet V2算法 ...

最新文章

  1. 35.2. Subversion 版本控制
  2. android是32-bit系统还是64-bit系统
  3. REVERSE-PRACTICE-BUUCTF-11
  4. 《软件需求分析(第二版)》第 12 章——需求确认 重点部分总结
  5. 百度编辑器的初步使用
  6. c++ std::async的注意事项
  7. 第三方服务-阿里云视频点播服务java服务端SDK相关代码
  8. java播放加密后的wav文件,使用Java实时同时播放WAV文件
  9. javacv 视频增加水印
  10. 【Python打卡2019】20190423之52周存钱挑战-for+range()函数使用
  11. win7访问linux共享没有权限设置,局域网共享时提示:你没有权限访问,请与网络管理员联系...
  12. Vue 3.0 Ref-sugar 提案真的是自寻死路吗?
  13. 能测试护肤品成分的软件,查化妆品成分的app
  14. 7-23 sdust-Java-学生成绩读取与排序 (10 分)
  15. Android鬼点子-自定义View就像PS
  16. 基于激光雷达实现三边定位算法开发记录(五)——三角函数法拟定圆心
  17. 电机控制器,FPGA 硬件电流环 基于FPGA的永磁同步伺服控制系统的设计
  18. Java语言基础小结
  19. Java系列技术之JavaWeb入门-钟洪发-专题视频课程
  20. 固定td宽度令其不随内容改变以及固定tr的高度

热门文章

  1. Nature Methods:微生物来源分析包SourceTracker——结果解读和使用教程
  2. R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤、条件推理决策树是传统决策树的一个重要变体、条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂
  3. pandas使用sum函数计算dataframe单数据列的加和或者对所有的数据列进行求和(sum column or all columns of dataframe)
  4. Python使用matplotlib绘制透明背景的可视化图像并保存透明背景的可视化结果(transparent background)
  5. R语言使用ggplot2包的快速可视化函数qplot绘制分组直方图(分组颜色设置)实战
  6. R语言as.numeric函数将因子变量(factor)转化为数值变量(Numeric)
  7. 什么是BI?什么是DW?ETL(Extract-Transform-Load)是什么?
  8. python代码获取每一天在一年中出现的次数(星期)
  9. 服务器安装使用rstudio-server
  10. 的python如何降级_提效降本:蚂蚁金服如何用融合计算改造在线机器学习