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

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

背景:

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

三层架构

什么是三层:

表示层(UI):

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

业务逻辑层(BLL):

架构的核心,处理业务逻辑和规则,表示层和数据访问层之间的沟通桥梁,主要负责数据的传递和处理。

数据访问层(DAL):

负责与数据库或其他数据存储进行交互,实现对数据的读取、保存和跟更新等操作.

分层的目的:

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

三层的结构关系

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

三层表现形式:

三层的优缺点:

三层架构

优点

可维护性

可重用性

可扩展性

可测试性

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

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

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

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

缺点

复杂性

耦合度

性能开销

开发时间

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

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

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

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

与两层的区别:

两层:

当系统需要进行修改,需要对整个系统进行重构。层此不明确,耦合度高,不灵活,不易扩展

适用:二层架构相对简单,适用小型应用程序。

 

三层:

无论发生在那一层,只需要更改该层,不需要更改整个系统。层次分明,耦合度低,灵活,可扩展

适用:三层架构更加复杂,适用大型复杂的应用程序。

总结:

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


目录
相关文章
|
1月前
|
存储 SQL 关系型数据库
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
ClickHouse的核心架构包括执行过程和数据存储两部分。执行过程涉及Parser与Interpreter解析SQL,通过Column、DataType、Block、Functions和Storage模块处理数据。Column是内存中列的表示,Field处理单个值,DataType负责序列化和反序列化,Block是内存中表的子集,Block Streams处理数据流。Storage代表表,使用不同的引擎如StorageMergeTree。数据存储基于分片和副本,1个分片由多个副本组成,每个节点只能拥有1个分片。
83 0
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
|
2月前
|
缓存 安全 API
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现
公司对外开放的OpenAPI-Server服务,作为核心内部系统与外部系统之间的重要通讯枢纽,每天处理数百万次的API调用、亿级别的消息推送以及TB/PB级别的数据同步。经过多年流量的持续增长,该服务体系依然稳固可靠,展现出强大的负载能力。
56 9
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现
|
1月前
|
SQL 缓存 分布式计算
日增数据超10PB!揭秘沃尔玛Lakehouse架构选型之路
日增数据超10PB!揭秘沃尔玛Lakehouse架构选型之路
45 2
|
1月前
|
存储 SQL 机器学习/深度学习
通用数据湖仓一体架构正当时
通用数据湖仓一体架构正当时
65 2
|
6月前
|
SQL 监控 安全
架构设计第五讲:数据巡检系统的设计与应用
架构设计第五讲:数据巡检系统的设计与应用
137 0
|
2月前
|
存储 消息中间件 Java
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的高可靠消息服务设计实现
在深入研究了 **“【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现”** 设计实现后,我们意识到,尽管API网关为服务商提供了高效的数据获取手段,但实时数据的获取仍然是一个亟待解决的问题。
41 1
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的高可靠消息服务设计实现
|
2月前
|
前端开发 JavaScript API
|
4月前
|
消息中间件 数据挖掘 Kafka
Kafka在微服务架构中的应用:实现高效通信与数据流动
微服务架构的兴起带来了分布式系统的复杂性,而Kafka作为一款强大的分布式消息系统,为微服务之间的通信和数据流动提供了理想的解决方案。本文将深入探讨Kafka在微服务架构中的应用,并通过丰富的示例代码,帮助大家更全面地理解和应用Kafka的强大功能。
|
6月前
|
弹性计算 Java 数据库连接
架构设计第七讲:数据巡检系统之daily&线上表结构自动化比对
架构设计第七讲:数据巡检系统之daily&线上表结构自动化比对
|
7天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。