架构模式之分层模式

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

1 概念

      分层架构模式是一种非常常见的架构设计模式,很多人都在用,可能不知道它的概念。分层模式背后的理念是,具有相同功能的组件将被组织成水平层。因此,每一层在应用程序中都扮演着特定的角色。
      在这种模式中,我们对应用程序可以拥有的层数没有限制。在这方面,我们还提倡关注点分离的概念。分层模式风格抽象了整个软件的视图;同时提供了足够的细节用以了解各个层的角色和职责以及他们之间的关系。分层模式的典型实现如下:

  • UI展示层(UI/Presentation Layer):渲染并运行用户界面,向服务器应用程序发送请求。
  • 应用层(Application Layer):包含表示层、应用程序层、域对象层和持久化层。
  • 域对象层/业务层(Domain/Business Layer):该层包含所有业务逻辑、实体、事件和其他包含业务逻辑的对象类型。
  • 数据库层(Database Layer):这是数据层,用于持久化数据,应用服务器将使用这些数据。
    架构模式之分层模式

优点:
各个模块可以独自开发和衍化,各个部分之间的交互非常少,支持可移植性,可修改性和复用性。

缺点:
分层会导致性能下降。这种模式不适合高性能应用程序,因为经过架构中的多层来实现一个业务请求的效率是不高的。

2 性能分析

整体敏捷性):整体敏捷性是快速响应环境不断变化的能力。虽然可以通过此模式的隔离层特性隔离变更,但在此体系结构模式中进行更改仍然很麻烦且耗时,因为大多数实现都具有单片特性,并且通常使用此模式的组件之间存在紧密耦合。
易部署性):受该架构模式具体实现的影响,部署可能会称为一个问题,特别是对于较大的应用程序。一个组件的小更改,就可能需要重新部署整个应用程序或者应用程序的很大一部分。因此,这种模式不容易形成持续交付,这就进一步降低了易部署性方面的总体评级。
易测性):由于组件从属于该架构模式中的特定层,所以其他层是可以被mock或stub的,这就使得分层架构模式相对容易测试。开发人员可以模拟表示层 中的组件来隔壁业务组件中的测试,也可以模拟业务组件来测试表示层。
性能(低):虽然某些分层架构确实运行的很好,但由于必须通过架构的多层来实现业务请求的低效率,这种模式并不适合于高性能应用程序。
可扩展性/可伸缩性):由于这种模式的紧密耦合和通用实现的趋势,使用这种体系结构模式构建的应用程序通常难以扩展。您可以通过将层拆分为单独的物理部署或将整个应用程序复制到多个节点来扩展分层体系结构,但总体而言,粒度太宽,使得扩展成本很高。
可开发性):开发的容易程度得到了相对较高的分数,主要是因为这种模式非常有名,而且实现起来并不太复杂。因为大多数公司通过分层(表示、业务、数据库)分离技术来开发应用程序,使得这种模式成为大多数业务应用程序开发的自然选择。公司的沟通和组织结构与软件开发方式之间的联系被称为Conway’s law。你可以谷歌“Conway’s law”来获得更多关于这种迷人相关性的信息。文章来源地址https://www.toymoban.com/news/detail-439535.html

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

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

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

相关文章

  • 专用 API 网关是一种典型的云计算服务架构模式,它可以让公司内不同部门之间的 API 服务更加集中、更加安全、更加统一

    作者:禅与计算机程序设计艺术 API Gateway(以下简称“网关”)是微服务架构中的一个重要组件。它作为边缘服务层与其他业务系统进行交互的桥梁,负责处理外部请求、安全认证、限流、熔断降级等工作。 在过去的几年中,随着容器技术的普及和Kubernetes等容器编排工具的

    2024年02月03日
    浏览(45)
  • 镜像的分层概念

    一、是什么 1.首先复习一下镜像是什么? 镜像 是一个轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),之后个打包好的运行环境就是

    2024年02月09日
    浏览(40)
  • 六边形架构和分层架构的区别?

    查看原文:六边形架构和分层架构的区别? 六边形架构和分层架构是什么? 六边形架构(Hexagonal Architecture)和分层架构(Layered Architecture)是两种常见的软件架构模式。 六边形架构强调将核心业务逻辑与外部依赖解耦,通过接口与外部世界进行通信。核心业务逻辑位于架构

    2024年02月16日
    浏览(39)
  • DDD中的分层架构

    领域区域设计的分层架构模型其实是在不断优化和发展的,从最早的传统直肠子式的四层架构模型,逐渐演变成目前以依赖倒置为原则的新的四层架构模型,从而实现了各层对基础设施层的解耦。 DDD中的分层架构很好的应用了关注点分离原则Separation of Concerns(SOC),每一层做

    2024年02月12日
    浏览(39)
  • 前端不同架构的分层设计

    (1). 系统架构: (2). 应用级架构: (3). 模块级架构: (4). 代码级架构:

    2024年02月03日
    浏览(43)
  • 一文了解DDD分层架构演进

    将领域模型和业务逻辑分离出来,并减少对基础设施、用户界面甚至应用层逻辑的依赖,因为它们不属业务逻辑。将一个夏杂的系统分为不同的层,每层都应该具有良好的内聚性,并且只依赖于比其自身更低的层。 传统分层架构的 基础设施层 位于底层,持久化和消息机制便

    2024年02月12日
    浏览(42)
  • 详解分层架构 Layered Architecture

    作者:禅与计算机程序设计艺术 Layered Architecture(层次化架构)是一种软件设计方法,将系统分成多个层次或抽象级别,每个层都由一组相互协作的模块和服务构成。各层之间通过接口协议进行通信,并可通过向上层提供的服务或功能接口集调用下层的服务或功能。这种结构

    2024年02月08日
    浏览(43)
  • 【架构与设计】常见微服务分层架构的区别和落地实践

    作者:京东科技 康志兴 从强调内外隔离的六边形架构,逐渐发展衍生出的层层递进、注重领域模型的洋葱架构,再到和DDD完美契合的整洁架构。架构风格的不断演进,其实就是为了适应软件需求越来越复杂的特点。 可以看到,越现代的架构风格越倾向于清晰的职责定位,且

    2023年04月18日
    浏览(35)
  • SpringBoot数据响应、分层解耦、三层架构

    类型:方法注解、类注解 位置:Controller方法、类上 作用:将方法返回值直接响应,如果返回值类型是 实体对象/集合 ,将会转换为json格式响应 说明:@RestController = @Controller + @ResponseBody 获取员工数据,返回统一响应结果,在页面渲染展示 在pom.xml文件中引入dom4j的依赖,用于

    2024年02月06日
    浏览(48)
  • 单片机(嵌入式)程序分层架构

    目录 前言 嵌入式3层软件架构 嵌入式4层软件架构-1 驱动层 操作系统层 中间件层 应用层 嵌入式4层软件架构-2 硬件层 嵌入式微处理芯片 嵌入式存储器系统 嵌入式I/O接口 中间层 系统软件层 RTOS 文件系统 GUI 应用层 嵌入式5层软件架构1 嵌入式5层软件架构2 嵌入式6层软件架构

    2023年04月19日
    浏览(76)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包