三层架构知识梳理

Entity Framework 6三层架构入门:创建模型Model 需求分析 1、基本数据:学生、学院、班级、课程;现在还不用考虑太复杂的项目逻辑关系,这几个就能体现数据间的关系,关系图如下: 这是简单的数据关系,可以自己扩充。 2、数据库关系梳理 为实现数据的简洁与三层架构的高内聚,低耦合,将数据实现分层: 1、BaseEntity:所有数据的父类,派生出一切数据;所有数据的操作都由它来实现; 2、Person:学生类,有姓名,学号,出生日期,班级号和学院,以及所学课程; 3、Course:课程类,设置一个课程名,也可以自己添加新的信息; 4、Coll 阅读详情

   最近学习了一下三层架构的知识,在网上搜集了一些资料,梳理了一下,以后备用,也希望能帮到其他热爱编程的人!

分层的由来:

   在学习网络的时候,书上有这么一句话:任何新技术的出现都必须具备两个条件:一是强烈的社会需求,二是前期技术的成熟!三层架构的出现,想必也顺应了这句话。

   1996年SUN公司推出了java,广受业界的喜爱,其重要的一个原因就是java专门为企业开发提供了多层分布式企业应用模型.在企业中,公司有明确的分工和部门,这些部门很可能不在同一个地区.每一个部门用到的系统一般是不同的.但是我们又希望每一个部门的信息统一起来管理,便于管理层管理.同时,企业的数据对安全性要求一般是很高的.不希望系统每一个部分都部署在每一个员工的PC上.这样显然不是安全的.所以,我们解决的办法就是把系统拆分开来,在J2EE中,应用逻辑按功能不同可以划分为不同类型的组件,各组件根据它们所在的层分布在不同的机器上,共同组成一个基于组件的分布式系统。这样,系统的安全性,可靠性大大的提高,充分发挥了分层的作用.自此,分层思想就推广开来。

   现在要谈的三层体系结构,是在客户端与数据库两层之间加入了一个“中间层”,也叫组件层,三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。这三层分别被称为:表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。下面具体阐述一下这三层:

 

基本的概念:

   表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。

   业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

   数据访问层(DAL):该层所等做事务直接操作数据库,针对数据的增添、删除、修改、查找。

各层作用:

   数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.

   业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。

   表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当的强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。

 

引用关系:

   UI直接引用业务逻辑层(BLL)

   业务逻辑层(BLL)需要引用数据访问层(DAL)

   数据访问层(DAL)所在程序集不引用业务逻辑层(BLL)和表示层(UI)

 

说了这么多的理论,有些抽象,下面用一个形象生动的例子阐述一下:

   结合上图,把一个系统的运行,看作是一个饭点的运营,饭店将整个业务分解为三部分来完成,每一部分各负其责,服务员只管接待顾客、向厨师传递顾客的需求;厨师只管烹炒不同口味、不同特色的美食;后勤工作人员只管提供美食原料;他们三者分工合作共同为顾客提供满意的服务。在饭店为顾客提供服务期间,服务员、厨师、后勤工作人员,三者中任何一者的人员发生变化时都不会影响其他俩者的正常工作,只对变化者进行重新调整即可正常营业。

   我们用三层结构开发的软件系统于此类似,表示层只提供软件系统与用户交互的接口;业务逻辑层是表示层和数据访问层之间的桥梁,负责数据处理和传递;数据访问层只负责数据的存取工作。

三层特点:

优点:
   1.解耦。上一层只依赖于下一层,如果测试下一层没有问题,那么问题就只可能出现在本层了。便于发现和改正BUG。
   2.简化复杂问题。就比如tcp/ip协议的四层模型或OSI七层模型,各层分工明确,将一个复杂问题简化了。

   3.便于系统维护/升级。各层间通过接口解耦,接口与实现分离,从而可以非常方便的替换掉实现,或者升级实现等。
   4.逻辑复用。例如原来基于B/S开发的程序现在要改成C/S,那么只要业务层的接口没有改变,那么业务层和数据层都可以直接复用。在如,只要数据访问层接口不变,那么使用便可以有对不同数据库的实现。

   5.便于团队开发。只要各层接口在开发前规定好,那么各层可以独立开发,进化或维护。
   6.方便部署。将各层开发成组件,则可以独立部署。

缺点:
   分层过多限制了客户对系统的理解能力。Tcp/ip便将OSI七层简化为了4层。另外分层过多也增加了系统的理解难度,当然也看客户的接受能力。虽然增大了灵活性,但同时也限制了客户的理解和同客户的交流。

我们什么时候用三层呐?

   如果一个程序,业务逻辑简单,没有真正的数据存储层,就没有必要抽象出一个业务逻辑层,当具有相当多的业务逻辑,业务复杂到一定程度,而且拥有数据存储介质。我们就考虑使用三层架构了。

 

 

三层架构实例和三层架构的基础知识 提供一个三层架构实例和三层架构的基础知识 立即下载

相关推荐

避坑指南:用pygrib处理ERA5气象数据时遇到的5个典型问题

本文总结了使用pygrib库处理ERA5气象GRIB数据时常见的五个典型问题及解决方案,涵盖数据获取、内存管理、时间处理、空间插值和性能优化。重点针对气象数据插值这一核心挑战,提供了处理不规则网格、缺失值和跨日期变更线的实用代码示例与优化策略,帮助用户高效、稳定地完成气象数据分析工作。

weixin_28224217的博客 185

认识MVC三层架构

云原生架构是一种基于容器化、动态编排和自动化部署的架构模式,将应用程序从单个服务器转移到云平台上的容器或虚拟机中,以获得更好的可扩展性、可靠性和弹性。所以,架构的出现,解决了代码的可维护性,程序臃肿,避免了代码全部写在servlet中,可以让servlet专注于请求处理,以及控制视图跳转,而不用再去处理业务逻辑,处理JDBC,因为早期servlet代码中:需要处理请求、响应、视图跳转、处理JDBC、处理业务逻辑。因此,MVC三层架构比三层架构更加灵活和可维护,适用于大型应用程序或需要长时间发展的应用程序。

m0_71461928的博客 736

eCognition易康面向对象分类批量选择样本,批量导出shp

可以的,使用这个工具条最右边那个三角尺manual editing toolbar,这是用来直接指定类别的,咱们可以拿它选完以后把指定的类别转成训练样本。另一个好处是,这个选出来的样本可以直接导出成shp,但select sample是不可以的,只能导出TTAMask也就是栅格掩膜。如果要导出shp,要在转之前导出。中间那条有点点的红线就是我的鼠标轨迹,只要碰到的对象就会全部选中,然后一点3的那个按钮就直接全部划分为林地了,十分丝滑。在弹出来的工作条里,首先选择你的类别,比如这里选一个forest。

qq_61845364的博客 4070

个人知识管理(转)

 自互联网在中国普及开始,我们就不停地听到这么一句话-“我们生活在一个信息爆炸的时代”。的确,我们可以通过电脑和手机轻而易举的获得各种知识,但是你有没有觉得“我们生活在信息的海洋里,却忍受着知识的饥渴”?   我们习惯在看到认为好的内容时将其收藏,但是收藏的数量总是远远超过阅读的数量。网站越看越多,但是在需要某些资料的时候却无法找到。   随着时代的发展,在这个“知识...

weixin_30706691的博客 222

基于Codex/Claude Code的学术技能包:13个Skill实现科研全流程自动化

写论文最头疼的是什么?是面对海量文献无从下手,还是实验数据一团乱麻,或者是好不容易有了结果,却卡在写作和格式调整上?如果你也经历过从选题到投稿的完整科研周期,就会明白每个环节都可能消耗大量时间精力。今天要分享的这套工具链,正是为了解决这些痛点而生——基于 Codex 和 Claude Code 平台的学术技能包(Academic Skills),它通过 13 个精心设计的 Skill,将一篇论文从 0 到 1 的全流程自动化、标准化,让你能更专注于研究本身。 这套技能包并非单一工具,而是一个覆盖文献阅读、数

weixin_33979203的博客 541

NVIDIA Omniverse 技术浅析(三):NVIDIA RTX 技术

NVIDIA RTX 技术是 NVIDIA 推出的革命性图形渲染技术,旨在通过硬件加速和软件优化,实现高质量的实时图形渲染。RTX 技术在 NVIDIA Omniverse 平台中扮演着至关重要的角色,为其提供了强大的渲染能力。

m0_75253143的博客 351

三层架构介绍

了解三层架构的概念、优势与应用

TestXzing的博客 1万+

手把手教你学simulink(83.2)--分布式能源场景实例:使用Simulink构建一个典型的光伏发电分布式能源系统模型

*分布式能源系统(Distributed Energy System, DES)**是指由多个小型发电单元、储能装置和负载组成的电力系统,这些组件通常分布在不同的地理位置。DES包括太阳能光伏(PV)、风力发电、微型燃气轮机、储能电池等。这种系统能够提高能源利用效率、减少传输损耗,并增强电网的稳定性和可靠性。在DES中,各组件之间的协调与控制至关重要。通过使用Simulink,我们可以模拟和优化这些系统的运行情况,研究其动态行为,并设计有效的控制策略。

MHD0815的博客 1104

构建知识体系(3):建立体系6个步骤

黄金圈思维思考法则:第一个层面是what, 也就是事情的表象, 我们具体做的每一件事;第二个层面是how, 也就是我们如何实现我们想要做的事情;第三个层面是why, 也就是我们为什么做这样的事情。?

黄规速博客:学如逆水行舟,不进则退 1万+

《YOLOv8:从入门到实战》报错解决 & 专栏答疑

《YOLOv8:从入门到实战》专栏上线后,部分同学在学习过程中提出了一些问题,笔者相信这些问题其他同学也有可能遇到。为了让大家可以更好地学习本专栏内容,笔者特意推出了该篇专栏答疑,针对同学们在学习过程中所提出的问题进行汇总记录,并不断实时更新,希望能够帮助到大家!🌈

小哥谈 1241

网格质量评价

CFD中评价网格质量的方法

B_etter_Man的博客 1万+

【三层架构】入门知识梳理

1.什么是三层?   三层架构(3-tierarchitecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层  (BLL)、数据访问层(DAL)。   2.三层架构使用背景   当业务复杂到一定程度,数据需要在另外的数据库内存储时,需要将分层来编写程序   3 程序分层的目的    解耦和   适应程序需求的变化    4.程序分层的

于丹丹 no zuo no die no life 4550

华为OD机考双机位C卷 - 朋友圈个数(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 朋友圈个数(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 695

【三层架构】——知识梳理

三层架构是什么 三层架构(3-tier architecture)通常意义上就是将整个业务应用划分为:显示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的主要是为了“高内聚低耦合”的思想。   何时用 当业务复杂和数据存储单独存在时,需要将分层来编写程序 怎么用 拿一个小小的Demo 来举例说明简单的运用 插图 显示层(UI):主要是与用户交互的

朝 花 有 露* 1448

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识。 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一、OSI七层网络协议 OSI是Open System Interconnect的缩写,意为开放式系统互联。 OSI参考模型各个层次的划分遵循下列原则: 1)根据不同层次的抽象分层 2)每层应当有一个定义明确的功能 3)每层功能的选择应该有助于制定网络协议...

夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远. 943

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190309.html 作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识。...

weixin_30322405的博客 194

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

  作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识。 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一、OSI七层网络协议 OSI是Open System Interconnect的缩写,意为开放式系统互联。 OSI参考模型各个层次的划分遵循下列原则: 1)根据不同层次的抽象分层 2)每层应当有一个定义明确的功能 3)每层功能的选择应该有助于制定网...

caotianzi86的专栏 658

基于Spring Boot的知识体系总结:从课堂到实践的系统化梳理

1. 引言:Spring Boot——现代Java开发的基石1.1 为什么选择Spring Boot:简化与效率的革命在当今快速迭代的软件开发领域,企业对于高效、敏捷的开发框架的需求日益增长。传统的Java企业级应用开发,尤其是基于Spring框架的应用,虽然功能强大,但其复杂的配置过程常常令开发者望而却步。大量的XML配置文件、繁琐的依赖管理以及重复的样板代码,不仅拖慢了开发速度,也增加了项目的维护成本。正是在这样的背景下,**Spring Boot应运而生**,它并非要取代Spring框架,而是对其进行

H1802888925的博客 742

SSM框架-知识点整理

一、SSM框架-Spring知识点 整理的资料供自己学习使用 Spring是另一个主流的JavaWeb 开发框架,该框架是一个轻量级的应用框架,具有很高的凝聚力和吸引力 IoC(Inverse of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)为内核 服务器端采用三层体系架构,分别为表现层(web)、业务逻辑层(service)、持久层(dao) 只需要通过配置就可以完成对事务的管理,而无须手动编程 Spring 的核心配置...

我就吃一口的BLOG 3045
上一篇: 我们做的程序设计
下一篇: vb.net小试三层架构
chenjinge7
博客等级 码龄15年 64粉丝 67原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值