系统架构图设计(轻量级架构)

        轻量级架构一般包括:表现层、业务逻辑层、持久层、数据库层

表现层架构

MVC

  • 模型(Model):应用程序的主体部分,表示业务数据和业务逻辑
  • 视图(View):用户看到并与之交流的界面
  • 控制器(Controller):接受用户的输入,并调用模型和视图去完成用户的需求
MVP

  • 模型(Model):提供数据
  • 视图(View):展示数据
  • 呈现器(Presenter):逻辑处理
  • MVP 避免了View 和 Model 之间的耦合,还进一步降低了 Presenter 对 View 的依赖。
MVVM

  • 视图(View):展示数据
  • 模型(Model):提供数据
  • 视图模型(ViewModel):ViewModel 是MVVM 的核心,通过DataBinding 实现View 与Model 之间的双向绑定,其内容包括数据状态处理、数据绑定及数据转换

业务逻辑层架构

  • DomainModel:领域模型是业务逻辑的核心,它代表了业务领域的概念、规则和约束;
    • 简单性:模型尽量简单,避免过度设计,只包含必要的属性和方法。
    • 内聚性:模型应该高度内聚,每个领域对象都应该代表一个清晰的业务概念。
    • 无状态性:领域模型通常是无状态的,不保存会话信息,以方便水平扩展。
  • Service:服务层是业务逻辑的实现层,它负责将领域模型暴露的功能组织起来,供控制层调用
    • 接口化:服务层通过接口定义操作,使得实现可以在不影响客户端的情况下进行替换或升级。
    • 事务管理:服务层通常负责事务的开始、提交和回滚,确保业务操作的原子性。
    • 轻量级依赖:服务层之间的依赖应该是轻量级的,避免复杂的依赖关系。
  • Control:控制层负责处理外部请求,将请求映射到相应的服务层处理,并返回响应
    • 薄控制层:控制层不包含业务逻辑,只负责请求转发和数据格式转换。
    • RESTful API:在Web应用中,控制层通常以RESTful API的形式提供接口。
    • 路由:控制层负责将不同的请求路由到正确的服务处理。

持久层架构


        轻量级架构的持久层主要关注于数据的持久化,它通常指的是应用中的数据访问层,负责将业务数据保存到数据库中,并在需要时从数据库中检索数据。持久层采用DAL工厂模式来匹配不同DBMS厂家的IDAL实现接口,它使得系统可以灵活地接入不同的数据源。

持久层常用技术

  • ORM(对象关系映射):这种方式利用工具或平台能够帮助将应用程序中的数据转换成关系型数据库中的记录;或是将关系数据库中的记录转换成应用程序中代码便于操作的对象。
    • Hibernate:全自动化ORM 框架,它对JDBC进行了封装,简化了数据库操作。
    • MyBatis:半自动化ORM 框架,它提供了更细粒度的控制,允许开发者直接编写SQL语句。
  • JPA(Java Persistence API):Java持久化API,定义了一系列规范,用于对象持久化的标准化。
  • 数据访问对象(DAO)模式:通过DAO抽象数据访问逻辑,为业务逻辑层提供数据操作的接口。
  • 仓储模式(Repository):类似于DAO,但更强调集合操作,是领域驱动设计中的一个概念。
  • 数据库连接池:数据库连接池是一种用于提高数据库操作性能和资源管理的技术。在传统的数据库访问模式中,每次用户请求都需要创建一个新的数据库连接,使用完毕后再关闭连接。这种模式在高并发环境下会导致大量的连接创建和销毁,从而降低系统的性能。数据库连接池通过重用已经创建的连接来解决这个问题。

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

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

相关文章

ESP32 S3 怎么开发基于ESP-RTC的音视频实时交互的应用,用语AI陪伴的领域

在ESP32-S3平台上开发基于ESP-RTC的音视频实时交互应用,尤其是在AI陪伴领域,涉及到音视频数据的采集、编码、传输和解码。ESP32-S3 具备较强的处理能力,且拥有丰富的接口和模块支持,可以用来实现这种功能。以下是一个完整的开发方…

【操作系统】Linux之进程管理二

第1关:进程等待 if(wait(&status) ! -1) { if(WIFEXITED(status)) status WEXITSTATUS(status); else status -1; } else { status -1; } 第2关:进程创建操作-exec函数族 void execlProcess() { pid_t pid vfork(); if(pid -1) { printf("…

Lim测试平台,五步完成批量生成数据

一、前言 在日常的测试工作中,我们常常需要生成大量的数据,例如为了测试分页功能、进行性能压力测试或准备测试所需的数据集。 虽然可以通过编写脚本或者使用如JMeter这样的工具来完成这些任务,但在团队合作的情境下,这种方法存…

打造通往自由的交易系统与策略——《以交易为生》读后感

我们知道要顺势而为,可什么是“势”?交易市场就像一片汪洋大海,潮起潮落的背后,有一套可以捕捉趋势的规律。要想看到势,就像软件工程中的可观测性,要找到合适的工具和指标,才能发现市场中重要的…

【云从】十、常见安全问题与云计算的计费模式

文章目录 1、常见安全问题1.1 DDoS攻击1.2 病毒攻击1.3 木马攻击1.4 代码自身漏洞 2、安全体系3、云计算的计费模式4、常见云产品的计费方案5、云产品计费案例 1、常见安全问题 1.1 DDoS攻击 通过分布在各地的大量终端,同时向目标发送恶意报包,以占满目…

微信小程序版本更新管理——实现自动更新

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

图表设计中文本的字体、大小与颜色

在创建图表时,我们往往过分关注图形的设计而忽视了文本的重要性。文本在图表中扮演着至关重要的角色,它不仅辅助图形具象化地展示数据,更是图表真实性和可靠性的关键。然而,很多人在设计图表时,并没有考虑到字体的选择…

生成对抗网络模拟缺失数据,辅助PAMAP2数据集仿真实验

PAMAP2数据集是一个包含丰富身体活动信息的数据集,它为我们提供了一个理想的平台来开发和测试HAR模型。本文将从数据集的基本介绍开始,逐步引导大家通过数据分割、预处理、模型训练,到最终的性能评估,在接下来的章节中&#xff0c…

PPT一键合并单元格!2个实用办公技巧,助力轻松搞定ppt!

我们都知道,ppt是一个多元的内容呈现媒介,我们可以在ppt中插入文字、图片、视频、音频和表格等,每种元素起到不同的作用,彼此间相得益彰。对于PPT中的表格,有时需要进行合并单元格的操作,即多合一&#xff…

ubuntu22.04安装Jupyter Notebook

在 Ubuntu 22.04 上安装 Jupyter Notebook 可以通过以下步骤完成: 1. 更新系统 首先,确保你的系统是最新的,运行以下命令更新包列表和已安装的软件包: sudo apt update sudo apt upgrade2. 安装 Python 及 pip Ubuntu 通常默认…

校园建筑用电安全监测装置 电气火灾监测预防设备功能介绍

在现代建筑中,电气火灾监测装置的作用越来越重要。随着建筑规模的扩大和电气设备的多样化,电气火灾的风险也随之增加。因此,建立有效的火灾监测和预警系统,对于保护人身安全和财产安全显得尤为关键。 电气火灾指由电气故障引发的…

Ubuntu(Linux)tcpdump使用方法详解

tcpdump命令 1.从所有网卡获取数据包 tcpdump -i any2.从指定网卡获取数据包 tcpdump -i eth03.指定网卡,IP,写文件 tcpdump -i eth0 host 192.168.16.101 -w ./tcp.dat //host 后面是发送方的地址4.指定网卡,源IP且目的IP,写入…

Nacos2.3.2在ubuntu中的部署

Nacos2.3.2 在ubuntu下的部署 下载地址 发布历史 | Nacos 官网 https://download.nacos.io/nacos-server/nacos-server-2.3.2.zip 修改 application.properties文件 开启鉴权 ### 开启鉴权功能 nacos.core.auth.caching.enabledtrue ### The auth system to use, current…

WebMvcConfigurer自定义配置

1. WebMvcConfigurer(轻量级扩展配置) 1.1 简介 WebMvcConfigurer 是 Spring 提供的接口,用于扩展 Spring MVC 的默认行为。它是一种非侵入式的配置方式,可以轻松地进行各种自定义配置,如拦截器、消息转换器、跨域设…

嵌入式※~MCU~LWIP~TLS/HTTPS等

单片机MCU中的加密通道, 使用各种的加密通道, http / tcp / mqtt 等 可能不在重复发了 ~~ 请看链接吧~~~ 我自己的原文哦~ https://blog.51cto.com/whaosoft/11803802

【Spring篇】Spring的Aop详解

🧸安清h:个人主页 🎥个人专栏:【计算机网络】【Mybatis篇】【Spring篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯初始Sprig AOP及…

【C++】哈希表的模拟实现

目录 一、闭散列(开放定址定法) 1、哈希表的结构: 2、哈希表的插入: 3、哈希表的查找: 4、哈希表的删除: 二、开散列(哈希桶) 1、哈希表的结构: 2、构造与析构&a…

常用shell指令

这些指令通常在adb shell环境中使用,或者通过其他方式(如SSH)直接在设备的shell中使用。 文件操作命令 ls:列出目录的内容 ls /sdcard cd:改变目录 cd /sdcard/Download pwd:打印当前工作目录 pwd cat&…

【MySQL】提高篇—索引与性能优化:如何创建与管理索引

为了提高查询效率,数据库提供了索引的功能。索引可以看作是数据库表的“目录”,它允许数据库管理系统快速定位到所需的数据行,而无需扫描整个表。 通过合理地创建和管理索引,可以显著提升数据检索的速度和效率。 在实际应用中&a…

炒股中如何克服贪婪与恐惧?

炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…