【机房重构】七层

简介: 【机房重构】七层

一、七层包图以及各层调用关系

二、各层的作用

实体层(Entity):存放全局的实体类,方便各个层之间的参数调用

数据访问层(DAL):该层说做事务直接操作数据库,针对数据的增添、删除、修改、查找,不需要做逻辑判断,只是和数据库直接交互

接口层(IDAL):用来定义一个统一的接口,解除B层和D层的耦合

工厂层(Factroy):工厂来创建接口,返回接口,用到了抽象工厂+反射+配置文件,作用是灵活的实现数据库的连接,方便换数据库,进一步解耦合

业务逻辑层(BLL):主要负责一些逻辑判断和处理

外观层(Facade):使用外观模式,杀跌复杂问题简单化,用外观模式定义系统中每一层的入口,层与层之间不能直接产生联系,而通过外观类建立联系,降低层之间的耦合

显示层(UI):主要职责是为用户提供信息,以及把用户的指令进行翻译

三、顺序

1.创建Entity,实现业务实体。

2.创建IDAL,实现接口。

3.创建DAL,实现接口里的方法。

4.增加APP.config里的配置信息,为提供DAL的程序集。

5.创建Factory,返回程序集的指定类的实例。

6.创建BLL,调用Factory,得到程序集指定类的实例,完成数据操作方法。

7.建Facade,调用BLL,得到BLL层的处理结果返回值。

8.创建UI,调用Facade里的数据操作方法,实现登录。

四、各个层之间的引用关系


相关文章
|
存储 C语言
什么是共用体类型
什么是共用体类型
171 0
|
7月前
|
存储 前端开发 JavaScript
调用DeepSeek API增强版纯前端实现方案,支持文件上传和内容解析功能
本方案基于DeepSeek API增强版,提供纯前端实现的文件上传与内容解析功能。通过HTML和JavaScript,用户可选择文件并调用API完成上传及解析操作。方案支持多种文件格式(如PDF、TXT、DOCX),具备简化架构、提高响应速度和增强安全性等优势。示例代码展示了文件上传、内容解析及结果展示的完整流程,适合快速构建高效Web应用。开发者可根据需求扩展功能,满足多样化场景要求。
2513 64
|
Web App开发 移动开发 编解码
FFmpeg开发笔记(三十二)利用RTMP协议构建电脑与手机的直播Demo
本文讨论了实时数据传输在互联网中的重要性,如即时通讯和在线直播。一对一通信通常使用WebRTC技术,但一对多直播需要流媒体服务器和特定协议,如RTSP、RTMP、SRT或RIST。RTMP由于其稳定性和早期普及,成为国内直播的主流。文章通过实例演示了如何使用OBS Studio和RTMP Streamer进行RTMP推流,并对比了不同流媒体传输协议的优缺点。推荐了两本关于FFmpeg和Android开发的书籍以供深入学习。
380 0
FFmpeg开发笔记(三十二)利用RTMP协议构建电脑与手机的直播Demo
|
数据挖掘 程序员 数据安全/隐私保护
解锁PDF潜力:9个Python库让你的文档处理更高效
程序员晚枫分享了Python处理PDF的9个第三方库,包括PyPDF2、pdfrw、ReportLab、pikepdf、pdfplumber、pdfminer.six、PyMuPDF、popdf和borb,各具优缺点。选择时需考虑应用场景、功能需求、库的维护状态和开源协议。例如,pdfplumber擅长内容提取,而ReportLab和PyMuPDF适用于创建和修改内容。
2228 7
|
Java Linux 数据安全/隐私保护
CTF — 图像隐写三板斧
CTF — 图像隐写三板斧
1525 1
|
安全 Linux Go
【CVE-2024-21626】容器逃逸漏洞修复
【CVE-2024-21626】容器逃逸漏洞修复
|
缓存 前端开发 编译器
有了 React.createElement 为什么还需要 JSX runtime,作用是什么?
之前的一篇 基于 Webpack 从 0 到 1 启动一个 React 项目 文章中有介绍的是如何从 0 到 1 配置 React 项目中的 JSX 转换,在查阅文档时有介绍到从本质,JSX 只是为
|
消息中间件 缓存 NoSQL
Redis总结
Redis总结
113 0
代码随想录刷题|LeetCode 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费
代码随想录刷题|LeetCode 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费
代码随想录刷题|LeetCode 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费
|
索引
Missing number - 寻找缺失的那个数字
需求:给出一个int型数组,包含不重复的数字0, 1, 2, ..., n;找出缺失的数字; 如果输入是[0, 1, 2] 返回 3  输入数组 nums = [0, 1, 2, 4] ;应该返回 3 输入nums = [2, 0] ;应该返回 1 输入nums = [1, 0];应该返回 ...
904 0