系统架构:经典三层架构

这篇具有很好参考价值的文章主要介绍了系统架构:经典三层架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

经典三层架构是分层架构中最原始最典型的分层模式,其他分层架构都是其变种或扩展,例如阿里的四层架构模式和DDD领域驱动模型。阿里的 四层架构模型在三层基础上增加了 Manager 层,从而形成变种四层模型;DDD架构则在顶层用户界面层与业务逻辑层之间引入应用层,从而形成变种DDD领域驱动模型;具体可参考《系统架构:分层架构》。

架构理念

三层架构基于“高内聚,低耦合”的思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。三层架构如图一所示。

三层架构图,系统架构,系统架构,架构
图一 三层构架

表示层(UI) 位于三层构架的最上层。与用户直接接触,实现系统与用户直接的交换,以及消息事件的处理。UI层调用业务逻辑层BLL相关接口完成业务操作。

业务逻辑层(BLL),实现数据处理和数据传递,将界面表示层和数据访问层连接起来,起到承上启下的作用。

数据访问层(DAL),实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到BLL层;

BLL处理的数据来自数据库和用户界面,其将用户界面收集过来的数据经过业务逻辑层的处理传送到数据库,而从数据库获取的数据,经过业务逻辑层处理后再呈现给用户界面。因此业务逻辑层是中间层,起到承上启下的作用。

经典三层架构的调用关系是:UI调用BLL,BLL调用DAL。而UI与DAL是不可直接相互调用,它们之间相互隔离。

基于 “高内聚,低耦合”理念的三层架构,使得开发人员分工更明确,可以让开发人员的精力更专注于应用系统核心业务逻辑的分析、设计和开发,加快项目的进度,提高了开发效率,有利于项目的升级和维护工作。

体系结构

三层架构的各层之间采用接口相互访问,并通过对象模型的实体类(Model)对象作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。

表示层和业务逻辑层之间用对象模型的实体类(Model)对象来传递数据,业务逻辑层和数据访问层之间用对象模型的实体类(Model)对象来传递数据,数据访问层通过ORM组件来操作数据库。在DAL和数据库之间,通过ORM实现二维表关系数据和实体类(Model)对象的映射。三层架构的体系结构如图二所示。

三层架构图,系统架构,系统架构,架构
图二 三层架构的体系结构

因此三层构架中除了三层之外,还有实体类(Model)对象这最为重要的组成部分。实体类(Model)对象使用实体(Entity)表示,它不属于三层中的任何一层。也就是说实体类(Model)对象可以被三层中的任何一层调用。实体(Entity)与三层的关系如图三所示。
三层架构图,系统架构,系统架构,架构
图三 实体与三层的关系

实体类(Model)对象Entity,具体有三个作用:

  • 实体实现面向对象思想中的"封装”。
  • 实体贯穿于三层之间,并在三层之间传递数据。
  • 相邻层之间的单项数据传递依靠变量或实体作为参数来传递,这样就构造了三层之间的联系,从而完成功能实现。

优缺点

优点

  • 可以让开发人员只关注整个架构的某一层;
  • 分层清晰,开发分工也更明确,有利于后期的维护和升级;
  • 单向调用,不允许跨层调用,可以很大程度上降低层与层之间的依赖耦合

缺点

  • 三层之间数据传输都通过实体类(Model)对象实现,实体类的变化将导致三层都需要修改。从而增加维护的工作量,也使得产生Bug的风险加大。
  • 三层之间数据传输都通过实体类(Model)对象实现不利于数据安全。例如一个数据表t_user,其字段包括userName, password, age等信息;password和age是客户的私人信息,这将导致这些数据在三层直接可以随意获取和展示,这是极不合适的。

总结

经典三层架构是分层架构中最原始最典型的分层模式,掌握经典三层模式是理解其他分层模型的基础。本文从三层架构的理念,架构体系,优缺点等三个角度对经典三层架构进行了深入分析。文章来源地址https://www.toymoban.com/news/detail-780548.html

到了这里,关于系统架构:经典三层架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web应用三层架构和Java后端(应用层)三层架构

    Web应用三层架构(对于整个项目应用而言) 1.客户端层UI层:主要用来与用户进行交互,显示数据并接收用户的输入,也常称为前端。一般对于一个应用通常会存在多种客户端(前端),如Web,H5,App等。 2.应用层:是系统核心价值部分,其关注业务规则的制定和业务流程的实现

    2024年02月16日
    浏览(43)
  • 三层架构与MVC架构区别

    表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。 servlet层 业务逻辑层:对我们数据实现业务逻辑的封装 service层 数据访问层:对数据库访问操作 dao层         1.MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写

    2024年02月04日
    浏览(45)
  • MVC三层架构

    1.MVC三层架构 MVC(Model-View-Controller)是一种常见的软件设计模式,用于组织和管理应用程序的代码和逻辑。它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。每个部分都有不同的职责和功能,以实现代码的分离和可维护性。 下面是对MVC三层

    2024年02月15日
    浏览(54)
  • java三层架构

    目录 一. 什么是三层架构 1. 各层的作用 2. 三层间的联系 -- 实体层 (1)Entity在三层架构中的作用: (2)三层及实体层之间的依赖关系 二、为什么使用三层? (1)使用三层架构的目的:解耦! (2)三层与两层的区别? 三、三层架构的优劣势 (1)三层架构的优势: (2)

    2024年01月16日
    浏览(35)
  • 三层架构基础知识

    UI(表现层): 主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。 BLL:(业务逻辑层): UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等。 DAL:(数据访问层): 与数据库打交道。主要实现对数据的增、删、改、

    2024年02月06日
    浏览(44)
  • java:三层架构

    界面层(表示层):用户看的得界面。用户可以通过界面上的组件和服务器进行交互 业务逻辑层:处理业务逻辑的。 数据访问层:操作数据存储文件。 需求:用户信息的增删改查操作 设计: 技术选型:Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat 数据库设计: create database day17;

    2024年02月09日
    浏览(40)
  • eNSP 三层架构 路由交换

    R1 和 ISP之间是12.1.1.0/24,ISP环回为1.1.1.1 在R1上写条缺省,做个NAT,以确保内网能上网 sw3 和 sw4 为接入层设备 对它们的e0/0/2,划分到vlan2 也就是启用access模式 sw1 和 sw2 为汇聚层设备 若使用基于vlan或基于分组的STP协议来工作三层架构中,将导致vlan间或组间通讯时对汇聚层间链

    2024年02月09日
    浏览(34)
  • Springboot中的三层架构

            目录 前言 1.Dao(数据访问层/持久层) 2.Service(业务逻辑层) 3.Controller(控制层) 总结: 前言         我们在进行前后端交互的时候,会分为 数据访问,业务逻辑,接受请求并响应数据三个操作 ,这三部分其实是可以拆分的,让他们解耦,否则代码复用性差并且不

    2024年02月08日
    浏览(52)
  • JavaWeb和MVC三层架构

    网站发布和部署一定要依托技术语言吗: 不一定,一个网站可以直接发布和部署,因为因为浏览器能够识别网页只需要两样东西,网络和静态页面,还有一个装在他们的容器,比如 nginx。 静态页面面临的问题: 1:静态网页是固定的,是不可变的。如果一个网站比如腾讯首页

    2024年02月14日
    浏览(54)
  • MVC 三层架构案例详细讲解

    @ 目录 MVC 三层架构案例详细讲解 每博一文案 1. MVC 概述 2. MVC设计思想 3. 三层架构 4. MVC 与 三层架构的关系: 5. 案例举例:用户账户转账 5.1 M(Model :数据/业务处理层) 5.2 C (Controller : 控制层) 5.3 V (View :视图/展示) 6. 总结: 7. 最后: MVC开始是存在于桌面程序中的,M是指业务

    2024年02月05日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包