三层架构软件设计分层模式

简介: 分层思想是为了让每层中的组件保持内聚性,每层都应与其下面的各层保持松耦合,对于小型的项目一般三层就够了,分层的方案有很多种,其中最具影响力也最成熟的就是三层架构.三层架构三层指的是表示层,业务逻辑层,数据访问层表示层:位于最外层(最上层),使用户能够直接访问,用于显示数据和接收用户输入的数据,为用户提供一种交互式操作界面.

 

分层思想是为了让每层中的组件保持内聚性,每层都应与其下面的各层保持松耦合,对于小型的项目一般三层就够了,分层的方案有很多种,其中最具影响力也最成熟的就是三层架构.

三层架构

三层指的是表示层,业务逻辑层,数据访问层

表示层:位于最外层(最上层),使用户能够直接访问,用于显示数据和接收用户输入的数据,为用户提供一种交互式操作界面.web应用程序中,表示层一般以JSP.HTML文件为主.

业务逻辑层:主要功能是对业务逻辑处理的封装,业务逻辑层中,通常会定义一些接口,表示层通过调用业务逻辑层的接口实现各种操作;

数据访问层:该层实现对数据的保存和读取操作.

层与层之间的关系

三层架构中,各层之间相互依赖,上一层依赖下一层,各层之间的数据传递方向分为请求和响应两个方向.

过程:

1.表示层根据用户的操作,请数据提交到业务逻辑层;

2业务逻辑层对用户的操作进行审核和处理,然后将请求通知数据访问层或者直接返回给表示层;

3数据层收到业务逻辑层的请求便开始访问数据库,从数据库中访问得到请求结果;

4并把请求结果通知业务逻辑层,业务逻辑层对数据进行审核和处理,

5然后通知给表示层,表示层收到数据,并把数据展示给用户;

 

分层原则:

1上层依赖下一层,依赖关系不跨层

上一层调用下一层所得到的执行结果完全取决于下一层中的实现代码,上一层无法进行控制

2.下一层不能调用上一层

上一层可以调用下一层的功能,下一层不能调用上一层的功能,下一层是为上一层提供服务,而下一层不能使用上一层的服务

3.下一层不依赖上一层

上一层不管发生任何改变,不会对下一层产生任何影响

4.在上一层中不能出现下一层的概念

确保层次间的关系清晰

相关文章
|
5月前
|
数据采集 运维 Serverless
云函数采集架构:Serverless模式下的动态IP与冷启动优化
本文探讨了在Serverless架构中使用云函数进行网页数据采集的挑战与解决方案。针对动态IP、冷启动及目标网站反爬策略等问题,提出了动态代理IP、请求头优化、云函数预热及容错设计等方法。通过网易云音乐歌曲信息采集案例,展示了如何结合Python代码实现高效的数据抓取,包括搜索、歌词与评论的获取。此方案不仅解决了传统采集方式在Serverless环境下的局限,还提升了系统的稳定性和性能。
158 0
|
6月前
|
资源调度 前端开发 算法
鸿蒙OS架构设计探秘:从分层设计到多端部署
本文深入探讨了鸿蒙OS的架构设计,从独特的“1+8+N”分层架构到模块化设计,再到智慧分发和多端部署能力。分层架构让系统更灵活,模块化设计通过Ability机制实现跨设备一致性,智慧分发优化资源调度,多端部署提升开发效率。作者结合实际代码示例,分享了开发中的实践经验,并指出生态建设是未来的关键挑战。作为国产操作系统的代表,鸿蒙的发展值得每一位开发者关注与支持。
|
6月前
|
运维 供应链 前端开发
中小医院云HIS系统源码,系统融合HIS与EMR功能,采用B/S架构与SaaS模式,快速交付并简化运维
这是一套专为中小医院和乡镇卫生院设计的云HIS系统源码,基于云端部署,采用B/S架构与SaaS模式,快速交付并简化运维。系统融合HIS与EMR功能,涵盖门诊挂号、预约管理、一体化电子病历、医生护士工作站、收费财务、药品进销存及统计分析等模块。技术栈包括前端Angular+Nginx,后端Java+Spring系列框架,数据库使用MySQL+MyCat。该系统实现患者管理、医嘱处理、费用结算、药品管控等核心业务全流程数字化,助力医疗机构提升效率和服务质量。
363 4
|
9月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
335 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
9月前
|
数据库
分层架构
表现层(Presentation Layer):处理用户界面和用户交互逻辑。 业务逻辑层(Business Logic Layer):处理业务相关的逻辑和规则。 数据访问层(Data Access Layer):负责与数据库或其他数据源进行 [Something went wrong, please try again later.]。
|
10月前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
10月前
|
缓存 监控 API
探索微服务架构中的API网关模式
随着微服务架构的兴起,API网关成为管理和服务间交互的关键组件。本文通过在线零售公司的案例,探讨了API网关在路由管理、认证授权、限流缓存、日志监控和协议转换等方面的优势,并详细介绍了使用Kong实现API网关的具体步骤。
130 3
|
10月前
|
存储 缓存 监控
探索微服务架构中的API网关模式
探索微服务架构中的API网关模式
127 2
|
9月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
10月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
250 3