论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
云原生
›
什么是整洁架构?Clean Architecture
什么是整洁架构?Clean Architecture
去皮卡多
论坛元老
|
4 天前
|
显示全部楼层
|
阅读模式
楼主
主题
1944
|
帖子
1944
|
积分
5832
整洁架构(Clean Architecture)是一种软件架构模式,也被称为“干净架构”。
一、核心原则
独立于框架
整洁架构的系统核心业务逻辑不依赖于详细的软件框架。例如,无论是使用Spring框架、.NET框架还是其他框架,业务逻辑部分都可以或许独立运行。如许在框架更新或者更换时,对核心业务的影响最小。以一个简朴的记账软件为例,其纪录收支、统计账目等核心业务功能不应该由于从一个Web框架(如Flask)更换到另一个(如Django)而须要大规模重写。
可测试性
架构设计使得业务规则可以很方便地被测试。由于业务逻辑是独立于外部组件(如数据库、用户界面等)的,以是可以使用单元测试来验证业务规则的正确性。比如,在一个电商系统中,“盘算商品折扣”的业务规则可以通过提供模仿的商品价格数据来进行单元测试,而不须要真正地毗连数据库或者启动整个用户界面。
独立于UI(用户界面)
业务逻辑与用户界面相互独立。这意味着可以方便地更换用户界面,比如从一个命令行界面转换为图形界面,或者从Web界面转换为移动应用界面,而不会影响到业务逻辑。例如,一个待服务项管理系统,其核心的使命添加、删除、排序等业务逻辑在从桌面应用的UI转换为手机应用的UI时,不须要进行大规模的业务逻辑修改。
独立于数据库
系统的核心不依赖于数据库的类型和实现。不管是使用关系型数据库(如MySQL)还黑白关系型数据库(如MongoDB),业务逻辑部分都能保持稳定。例如,一个内容管理系统的文章发布、编辑、分类等业务规则不会由于从SQL Server数据库转换为Redis存储部分数据而改变。
二、架构条理结构
实体(Entities)层
这是最内层,包罗了企业级的业务规则和关键数据。这些业务规则是最基本的、与详细应用场景无关的通用规则。例如,在一个物流管理系统中,“包裹”这个实体有重量、尺寸、发货地和收货地等属性,其业务规则大概包括盘算包裹体积、根据重量和距离估算运费等。这些规则是基于物盛行业的基本原理,不依赖于系统的其他部分,如用户怎样查询包裹信息(UI部分)或者包裹数据存储在那里(数据库部分)。
用例(Use Cases)层
也称为“应用层”,它是业务规则的详细实现,通过调用实体层的对象来完成特定的业务功能。例如,在物流管理系统中,“创建包裹运输使命”这个用例大概会调用“包裹”实体的相关属性和方法,如获取包裹重量和尺寸来安排合适的运输车辆。用例层协调实体之间的交互,以满足详细的业务需求。
接口适配器(Interface Adapters)层
这一层主要起到数据格式转换和接口适配的作用。它将用例层的输出转换为适合外部设备(如用户界面、数据库等)使用的格式,同时将外部设备的输入转换为用例层可以或许理解的格式。在物流管理系统中,如果用例层返回的是一个包罗包裹运输信息的对象,接口适配器层大概会将这个对象转换为可以在用户界面上体现的表格形式,或者将用户在界面上输入的包裹信息(如用户在表单中填写的发货地和收货地)转换为用例层可以或许处置处罚的格式。
框架和驱动(Frameworks & Drivers)层
这是最外层,包罗了详细的软件框架(如Web框架、数据库管理系统等)和外部设备(如服务器、用户界面框架等)。例如,在物流管理系统的Web应用中,最外层大概包括Spring Boot(Web框架)、MySQL(数据库)以及HTML/CSS/JavaScript(用户界面)等。这些外部组件为系统提供了运行的环境和详细的实现本领,但系统的核心业务逻辑(实体层和用例层)并不依赖于它们的详细特性。
三、与其他架构模式的比较
与MVC(Model - View - Controller)模式
MVC模式主要关注的是用户界面和业务逻辑的分离,其中模子(Model)部分包罗了业务数据和部分业务逻辑,视图(View)负责展示数据,控制器(Controller)协调模子和视图之间的交互。而整洁架构更加全面地分离了业务逻辑的各个条理,从最核心的业务规则到外部的实现细节。在整洁架构中,MVC中的模子部分大概会涉及到实体层和用例层的部分内容,视图和控制器大概会在接口适配器层和框架与驱动层发挥作用。
与三层架构(Three - Tier Architecture)
三层架构通常包括表现层(用户界面)、业务逻辑层和数据访问层。整洁架构在条理划分上更加过细,并且强调业务逻辑的独立性。在三层架构中,业务逻辑层大概会受到表现层和数据访问层的影响,而整洁架构通过多个条理的隔离,更好地保护了核心业务逻辑不受外部因素的干扰。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
去皮卡多
论坛元老
这个人很懒什么都没写!
楼主热帖
民间最大社区,倒闭了!
如何基于 ZEGO SDK 实现 iOS 变声/混响 ...
FPGA虚拟化:突破次元壁的技术 ...
Ribbon负载均衡的深度分析和使用 ...
仿京东严选商城项目,集购物+支付+发货 ...
Java 结构化数据处理开源库 SPL ...
基于Kubernetes(k8s)部署Dubbo+Nacos服 ...
LyScript 实现应用层钩子扫描器 ...
Python生成字母对后写入文件
驱动开发:内核R3与R0内存映射拷贝 ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表