当前位置: 首页 > news >正文

Java开发——三层架构,分层耦合

在软件设计中尽量在一个类中只做一件事,只有一个功能,所以需要吧上述代码每个功能在定义到每个类中,所以采用三层架构的方式。

三层架构:

前端发送请求先访问Controller层->但并不进行逻辑处理需要在调用Service层->Service需要在调用Dao层拿数据->然后再返回Service进行逻辑处理->处理完成再将处理后的数据返回给Controller然后再相应给前端。

Controller层

Controller:控制层,接受前端发送的请求,对进行处理,并相应数据。

将代码进行拆分:


 

Service层

Service:业务逻辑层,处理具体的业务逻辑。


 

dao层

dao:数据访问层(持久层),负责数据访问读取操作,包括数据的增删改查。

将上述代码进行拆分:


 

小结

1.为什么要对代码进行拆分?

遵循单一职责原则,便于复用、后期维护

2.拆分为了哪三层?每一层的职责是什么?

·controller:接受请求,响应数据

·service:逻辑处理

dao:数据访问

分层耦合:

耦合:衡量软件中各个层/各个模块的依赖关系程度。

内聚:软件中各个功能模块内部的功能联系。

软件设计原则:高内聚低耦合。

内聚:模块内的功能联系

耦合:层与层或模块与模块之间联系较少。

为什么要高内聚低耦合:

代码中有三个模块,要改某一块代码,三个都要改如何解决这个问题,就要进行解耦。

需要加入一个容器。

加入一个容器的方法就是加一个注释,

dao:

service:

Controller:


小结:


IOC详解:

DI详解:

http://www.xdnf.cn/news/685621.html

相关文章:

  • 【C++指南】C++ list容器完全解读(二):list模拟实现,底层架构揭秘
  • vue2指令方式防抖功能
  • 征程 6X VDSP 调试方法
  • ​​全球购订单查询接口开放:ERP自动同步实战手册​
  • 程序员出海之英语-基础-小猪佩奇 第 1 季第 1 集 泥坑
  • LMEval ,谷歌开源的统一评估多模态AI模型框架
  • MySQL省市区数据表
  • 基于BERT和GPT2的实现来理解Transformer的结构和原理
  • adb查看、设置cpu相关信息
  • azure配置管道监控任务
  • 本地github ssh多账号问题
  • 【Golang入门】第四章:控制结构——从条件分支到异常处理
  • 华为OD机试真题——最小矩阵宽度(宽度最小的子矩阵)(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • craw4ai 抓取实时信息,与 mt4外行行情结合实时交易,基本面来觉得趋势方向,搞一个外汇交易策略
  • FFMPEG推流器讲解
  • CSS选择器:has使用示例
  • MySQL问题:MySQL中主要的锁都有啥?
  • day4 cpp:
  • 杰发科技AC7840——CSE硬件加密模块使用(2)
  • 深入解析 Tomcat 线程管理机制:从设计思想到性能调优
  • 基于正点原子阿波罗F429开发板的LWIP应用(4)——HTTP Server功能
  • 类和对象(中1)
  • 如何加载私钥为 SecKeyRef
  • Word表格怎样插入自动序号或编号
  • AMBA总线家族成员
  • 基于FPGA的DES加解密系统verilog实现,包含testbench和开发板硬件测试
  • c++设计模式-单例模式
  • 数据类型(基本类型下半)day3
  • 智警杯备赛--数据库管理与优化
  • [神经网络]使用olivettiface数据集进行训练并优化,观察对比loss结果