首页 > 其他分享 >三层架构

三层架构

时间:2024-09-21 14:13:35浏览次数:7  
标签:逻辑 架构 分层 业务 可能 三层

目录

通用软件设计思想------分层设计

分层的特点

  • 上层使用下层定义的服务
  • 下层不能使用上层定义的服务
  • 每一层对自己的上层隐藏其下层的实现细节

分层的优点

  • 降低软件系统构件之间的耦合度,实现“低耦合,高内聚”原则
  • 提升系统灵活性,可以在接口相同的情况下替换某层的具体实现
  • 可以增强复用度,下层可以为多个上层提供服务

分层的缺点

  • 过多的分层影响系统性能
  • 分层可能会带来各层的级联修改
  • 过度设计:对于小型或简单的应用程序,分层设计可能是不必要的,可能会导致过度设计和不必要的复杂性。
  • 层间依赖:层次之间的依赖可能导致代码难以理解和维护,特别是当层次之间的界限不清晰时。
  • 数据重复:在不同层次之间传递数据时,可能会出现数据重复或不一致的问题。
  • 层间通信成本:在层次之间传递数据可能涉及序列化和反序列化,这会增加通信成本。
  • 难以实现跨层功能:某些功能可能需要跨多个层次协作,这在分层设计中可能难以实现。
  • 增加开发和测试时间:分层设计可能需要更多的开发和测试时间,因为需要为每个层次编写和测试代码。
  • 难以适应变化:在某些情况下,分层设计可能难以适应需求的快速变化,因为修改一个层次可能会影响到其他层次。
  • 可能导致僵化:严格的分层设计可能会限制开发人员的灵活性,导致系统难以适应新的需求或技术。
  • 安全性考虑:在层次之间传递敏感数据时,需要特别注意安全性,以防止数据泄露或未授权访问。

三层架构模式(表现层、业务层、持久层)

表现层

负责用户界面交互:即用户在使用一个系统的时候他的所见所得,它只负责显示和采集用户操作,不包含任何业务相关的逻辑处理

业务层

负责处理业务逻辑:通过获取UI传来的用户指令,执行业务逻辑,在需要访问数据源的时候,直接交给Dao层进行处理;处理完成后,返回必要数据给UI层

持久层

该层所做事务直接操作直接操作数据库,针对数据的增添、删除、修改、查找等

使用场景

大型复杂软件系统开发

业务繁多逻辑复杂 ---- 需要团队协作开发 ---- 需要长期升级维护

优缺点

优点

分离关注点:三层架构将用户界面、业务逻辑和数据访问代码分开,使得开发人员可以专注于单个层的开发,提高了代码的可维护性和可读性。

重用性:业务逻辑层可以独立于用户界面和数据访问层进行开发和测试,这意味着业务逻辑可以在不同的应用程序中重用。

易于测试:由于每一层都是独立的,因此可以更容易地对每一层进行单元测试和集成测试。

灵活性:可以独立地替换或升级任何一层,而不影响其他层。例如,可以更换数据库系统而不需要修改业务逻辑层或表示层。

可扩展性:在多服务器环境中,每一层可以独立地进行扩展,以满足应用程序的不同需求。

安全性:通过将数据访问逻辑从表示层分离出来,可以更容易地实施安全措施,如在业务逻辑层中实现认证和授权。

技术多样性:可以使用不同的技术或编程语言来开发不同的层,例如,可以使用Java开发业务逻辑层,而使用C#开发表示层。

缺点

复杂性:对于简单的应用程序,三层架构可能会引入不必要的复杂性,因为需要管理多个层和它们之间的通信。

性能开销:由于增加了网络通信(客户端和服务器之间的数据交换),可能会影响应用程序的性能。

开发成本:在初期,开发一个三层架构的应用程序可能需要更多的时间和资源,因为它涉及到更多的组件和层之间的协调。

学习曲线:对于新手开发者来说,理解和实现三层架构可能比较困难,需要一定的学习和实践。

部署依赖性:每一层可能需要特定的环境配置,这可能会增加部署的复杂性。

紧耦合问题:虽然三层架构旨在减少耦合,但在某些情况下,层之间的依赖关系可能会导致紧耦合,特别是在业务逻辑层和数据访问层之间。

不适合小型应用:对于小型或简单的应用程序,使用三层架构可能过于笨重,简单的两层架构(表示层和业务逻辑层)可能更为合适。

标签:逻辑,架构,分层,业务,可能,三层
From: https://www.cnblogs.com/yangcurry/p/18423959

相关文章

  • 系统架构设计师教程 第8章 8.3 ATAM方法架构评估实践 笔记
    8.3ATAM方法架构评估实践★★★★★用ATAM方法评估软件体系结构,其工作分为4个基本阶段,即演示、调查和分析、测试和报告ATAM8.3.1阶段1——演示(Presentation)初始阶段,有3个主要步骤:第1步:介绍ATAM评估负责人向所有相关参与者提供有关ATAM过程的信息,说明评估中使用的......
  • 系统架构设计师教程 第10章 10.1 软件架构演化和定义的关系 笔记
    10.1软件架构演化和定义的关系★★★☆☆10.1.1演化的重要性软件架构的演化就是软件整体结构的演化,演化过程涵盖软件架构的全生命周期,包括软件架构需求的获取、软件架构建模、软件架构文档、软件架构实现以及软件架构维护等阶段。首先,软件架构作为软件系统的骨架支撑......
  • Framework + plugin架构
    DataX/introduction.mdatmaster·alibaba/DataX·GitHubhttps://github.com/alibaba/DataX/blob/master/introduction.md 为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数......
  • springboot布式架构网上商城系统的设计与实现
    大家好,我是永钊,一个混迹在java圈的码农,今天要和大家聊的是一款基于springboot的大学生科创项目在线管理系统,项目源码请联系永钊,目前有各类成品毕设javawebsshssmspringboot等等项目框架,源码丰富。专业团队,咨询就送开题报告,活动限时免费,有需要的朋友可以来留言咨询。本......
  • 链动2+1模式系统发源码之区域代理架构设计与功能解析
    链动2+1模式系统开发源码中的区域代理设计,主要围绕行政区划分的省、市、区代理机制进行构建,旨在通过这一机制促进线上线下的融合,提升区域市场的覆盖。以下是对该设计的详细解析一、区域代理的设立与获取方式1. 设立原则:区域代理分为省级代理、市级代理和区县代理,每个级别均基于行......
  • 微服务架构---Ribbon\Feign
    Ribbon(负载均衡)Ribbon概述在SpringCloud中,Nacos⼀般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Nacos中读取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。Ribbon作用1.服务调用基于Ribbon实现服务调用,是通过拉取到的所有服务列......
  • 从架构到业务:实现企业一致性与合规性的价值流优化方案
    确保业务与架构的一致性与合规性——企业未来成功的关键随着企业数字化转型不断加速,如何在保持合规的同时确保业务架构与战略目标的高度一致,已经成为企业在当今市场竞争中的关键成功因素。为了在多变的商业环境中立足,企业不仅需要优化其业务流程,还必须确保企业架构与其战略目......
  • SaaS架构:流程架构分析
    大家好,我是汤师爷~今天聊聊SaaS架构中的流程架构分析。业务流程的概念业务流程是企业为实现目标而制定的一套系统化的工作方法。它由一系列有序的业务活动组成,按照既定规则将资源(输入)转化为有价值的结果(输出)。这一过程需结合企业的具体情况和可用资源,旨在为客户创造价值,同时达......
  • 架构设计:负载均衡层设计方案(5)——LVS单节点安装
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • 软件设计画图,流程图、甘特图、时间轴图、系统架构图、网络拓扑图、E-R图、思维导图
    目录一、流程图二、甘特图三、时间轴图四、系统架构图五、网络拓扑图六、E-R图七、思维导图一、流程图是一种用符号表示算法、工作流或流程的图形。用不同的图形表示不同含义,如椭圆表示开始和结束、菱形表示判断等。画图工具WPSoffice应用市场--文档处理--本地流......