了解三层架构:表示层、业务逻辑层、数据访问层

news2024/11/15 23:43:33

目录

背景:

三层架构

什么是三层:

分层的目的:

三层的结构关系​编辑

三层表现形式:​编辑

三层的优缺点:

总结:


背景:

三层架构是一种软件设计模式,可称为客户端-服务器-架构,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。

三层架构

什么是三层:

表示层(UI):

用户交互的界面,位于最上层,用于显示和接收用户提交的数据,为用户提供交互式平台。表示层一般为Windows窗体应用程序或Web应用程序

业务逻辑层(BLL):
架构的核心,处理业务逻辑和规则,表示层和数据访问层之间的沟通桥梁,主要负责数据的传递和处理。
数据访问层(DAL):
负责与数据库或其他数据存储进行交互,实现对数据的读取、保存和跟更新等操作.

分层的目的:

“高内聚,低耦合的思想”,表示在设计和开发软件系统时,应该使模块之间的关系更加紧密,同时避免模块之间的依赖性过于紧密,以便更好地实现系统的可维护性,可扩展性和可重用性

三层的结构关系

各层之间相互依赖,表示层依赖于业务逻辑层,业务逻辑层依赖于数据访问层

三层表现形式:

三层的优缺点:

三层架构

优点

可维护性

可重用性

可扩展性

可测试性

每一层独立扩展,不影响其他层

组件的之间的接口定义良好(多个程序重复使用它们)

每一层可以独立扩展,不影响其他层

每个层次都有自己的职责和功能(轻松编写单元测试,集成测试)

缺点

复杂性

耦合度

性能开销

开发时间

三层架构增加应用程序的复杂性,需要更多的设计和实现工作

虽然可以提高代码的维护性和扩展性,同时增加系统的耦合度

增加了层间通信,导致性能开销

设计、实现每个层次-增加开发时间、尤其复杂程序时间延长

总结:

三层架构是一种常用的软件架构模式,可以使代码更加清晰、易于维护和扩展,同时还可以提高代码的可重用性和可测试性。在实际的软件开发中,我们应该根据具体的需求和场景选择合适的架构模式,以达到更好的开发效率和代码质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1083752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二证券:汇金增持有望催化银行板块 白酒企稳信号凸显

昨日,两市股指盘中震动上扬,创业板指、科创50指数一度涨超1%,但沪指午后涨幅逐渐回落。到收盘,沪指涨0.12%报3078.96点,深成指涨0.35%报10084.89点,创业板指涨0.8%报2003.9点,科创50指数涨1.29%…

3.3 数据定义

思维导图: 前言: **核心概念**: - 关系数据库支持**三级模式结构**:模式、外模式、内模式。 - 这些模式中包括了如:模式、表、视图和索引等基本对象。 - SQL的数据定义功能主要包括了模式定义、表定义、视图和索引的定…

AnolisOS升级SSH,不升级SSL

由于ssh有漏洞需要升级,但是为了最小化升级不影响ssl,因为ssl里面带了加密库,系统中很多核心服务的加密都是用ssl进行加密的(像网络服务,系统用户登录等),如果ssl升级出现不兼容,就可…

【Python语义分割】Segment Anything(SAM)模型全局语义分割代码+掩膜保存(二)

我上篇博文分享了Segment Anything(SAM)模型的基本操作,这篇给大家分享下官方的整张图片的语义分割代码(全局),同时我还修改了一部分支持掩膜和叠加影像的保存。 1 Segment Anything介绍 1.1 概况 Meta A…

201、RabbitMQ 之 Exchange 典型应用模型 之 工作队列(Work Queue)

目录 ★ 工作队列介绍代码演示测试注意点1:注意点2: ★ 工作队列介绍 工作队列: 就是让多个消费者竞争消费同一个消息队列的消息,相当于多个消费者共享消息队列。 ▲ RabbitMQ可以让多个消费者竞争消费同一个消息队列 ▲ 消息队…

MS4344:24bit、192kHz 双通道数模转换电路

MS4344 是一款立体声数模转换芯片,内含插值滤波器、 multi-bit 数模转换器、输出模拟滤波器。 MS4344 支持大部分 的音频数据格式。 MS4344 基于一个带线性模拟低通滤波器的 四阶 multi-bit Δ-Σ 调制器,而且本芯片可以通过检测信号频率 和主时钟频…

【Axure高保真原型】冻结固定中继器表格首行+首尾列

今天和大家分享冻结固定中继器表格首行首尾列的原型模板,我们可以滚动或者拖动滚动条上下左右查看表格更多的数据,表格的首行和首尾两列都是固定的,鼠标移入对应行会有高亮显示的效果,点击操作列的删除按钮可以删除该行数据。那这…

智能油烟机 优化烹饪体验

如果说空调是夏天最伟大的发明,那么油烟机则是健康厨房的伟大推进者。随着科技的发展,智能化的油烟机逐渐走进了人们的日常生活。每当我们在爆炒、油炸食物的时候,油烟总能呛得人眼睛痛、鼻子难受,传统的油烟机面前我们还需要手动…

蒙自源荣登“2022年度中国快餐TOP100”榜单!

2023年9月26日,由中国烹饪协会主办的第27届中国快餐产业大会在浙江宁波盛大召开。 对于行业而言,这是一次至关重要的聚会。本次大会以“增量博弈,智造无限机遇”为主题,聚集了众多餐饮业的意见领袖,共同探讨行业发展焦…

第二证券:市净率高好还是低好?

市净率是一个衡量公司股票投资价值的指标,通过比较公司股票价格和公司每股净资产的比值来评估公司股票的估值水平。市净率高好还是低好这个问题并没有一个简单的答案,取决于具体的市场环境和投资者的需求。本文将从多个角度分析市净率高好还是低好。 首…

云HIS医院信息化管理平台源码,SaaS模式、springboot框架

HIS系统作为医院信息化的核心业务系统,如今已成为各个医疗机构的必备品了。大到三级二级医院,小到社区卫生服务中心,门诊(门诊管理系统也可以理解为门诊的his系统,只是功能简单,模块较少)。随着…

STM32F103C8T6一些集成模块(ADC)

ADC ADC,Analog-to-Digital Converter的缩写,指模/数转换器或者模数转换器 [1] 。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的…

Git 速通以及常用指令!!

参考视频 01 - Git - 教程简介_哔哩哔哩_bilibili 在需要使用git的文件夹打开git bash,指令如下↓ 当然图形化界面也很香!github desktop也很舒服! 查看文件 版本号 git cat-file -p 版本号 仓库操作 在当前文件夹下创建git仓库 git ini…

轻量级Composition

MEF,全称Managed Extensibility Framework(托管可扩展框架)。MEF是专门致力于解决扩展性问题的框架。MEF 位于 ComponentModel.Composition 程序集中,添加 System.ComponentModel.Composition 和 System.ComponentModel.Compositi…

是谁制造了TikTok的商业化困境?

随着社交媒体的崭露头角,TikTok已成为数字营销界备受瞩目的新星。这款以短视频为特色的应用程序在全球范围内拥有数亿用户,吸引了众多品牌和创业者的关注。 然而,尽管TikTok拥有巨大的用户基础和潜力,但它也面临着商业化方面的一…

如何在会计面试中展现自己的优势?

在会计面试中展现自己的优势是非常重要的,因为这将决定你是否能够脱颖而出并获得这个职位。下面是一些可以帮助你展示自己优势的方法: 1. 准备充分:在面试前,确保你对公司的背景和业务有所了解。研究公司的财务报告和新闻&#xf…

搞流式计算,大厂也没有什么神话

抖音、今日头条,是字节跳动旗下最受用户欢迎的两款产品,也是字节跳动的门面。而在这背后,是众多技术团队在支撑,流式计算就是其中一支。 不过,即使是在字节跳动,搞流式计算也没有神话。只有一群年轻人&…

软件测试学习(二)静态白盒测试、动态白盒测试、配置测试、兼容性测试、外国语言测试

静态白盒测试:检查设计和代码 静态是指不启动,白盒是指看内部代码。 静态白盒测试是在不执行软件的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时称为结构化分析。 进行静态白盒测试的首要原因是尽…

使用antd-pro脚手架搭建react ts项目

Pro 中使用 TypeScript 来作为默认的开发语言,TypeScript 的好处已经无须赘述,无论是开发成本还是维护成本都能大大减少,是中后台开发的必选。 初始化 提供了 pro-cli 来快速的初始化脚手架。 # 使用 npm npm i ant-design/pro-cli -g pro…

生产级Stable Diffusion AI服务部署指南【BentoML】

在本文中,我们将完成 BentoML 和 Diffusers 库之间的集成过程。 通过使用 Stable Diffusion 2.0 作为案例研究,你可以了解如何构建和部署生产就绪的 Stable Diffusion 服务。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 Stable Diffusion 2.0 …