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

Spring中都用到了哪些设计模式

1.工厂模式

用途:用于创建对象而无需指定具体的类。

示例: Spring使用工厂模式来创建对象, Spring 中的 BeanFactoryApplicationContext 用于创建和管理 bean 实例。

2.单例模式(Singleton Pattern):确保一个类只有一个实例,并提供全局访问点。

示例: Spring默认使用单例模式来管理Bean的生命周期。所有的Bean默认只有一个实例,Spring容器负责创建和维护该实例。

3.代理模式: 一种结构型设计模式,通过引入代理对象来控制对真实对象的访问。

示例: Spring AOP(面向切面编程)使用代理模式来实现方法拦截和增强。

4.观察者模式:用于建立一对多的依赖关系。当一个对象的状态变化时,所有依赖于它的对象都会被通知并自动更新。

示例: Spring的ApplicationContext实现了事件发布者的功能,可以发布各种事件,而其他组件则可以通过实现ApplicationListener来监听这些事件。

5.模板方法模式:定义一个操作中的算法骨架,将一些步骤延迟到子类中。

示例:Spring 提供了很多模板类,例如 JdbcTemplateRestTemplate,简化了数据库和 REST 调用。

6.桥接模式 : 是一种结构型设计模式。它通过引入一个桥接接口,将抽象类和具体实现类解耦,从而提高系统的灵活性和可扩展性。

Spring通过桥接模式实现了将抽象和实现解耦,特别是在数据库、事务管理和持久化方面。

示例:JdbcTemplate和HibernateTemplate:这两个类分别封装了不同的数据库访问实现,提供了相同的接口。通过这种方式,Spring可以灵活地替换数据库访问实现,而无需修改应用程序的代码

7.适配器模式:将一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作。

示例:Spring 的 HandlerAdapter 将不同的控制器方法适配为统一的接口。

http://www.dtcms.com/a/102092.html

相关文章:

  • 美团小程序 mtgsig1.2 拼好饭案例 分析 mtgsig
  • 六级词汇量积累day13
  • dayjs dayjs时间格式化工具(时间计算、时间格式化)
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例14,TableView16_14 拖拽自动保存示例
  • python leetcode简单练习(1)
  • 【FreeRTOS】任务(TASK)——任务的创建(源码解读)
  • Qt中绘制不规则控件
  • ​Linux 中 nmap 命令详解:从基础到实战的全面指南
  • dfs记忆化搜索刷题 + 总结
  • 如何判断列表a中元素是否在列表b中
  • [leetcode]2685. 统计完全连通分量的数量
  • C++ 结构体、结构体指针与结构体指针数组详解
  • RabbitMQ 的三种集群模式
  • ETL数据集成:企业数字化转型的核心驱动力与实施策略
  • C++ Primer Plus 编程练习题 第五章 循环和关系表达式
  • 22-ArkTs 常见错误
  • DataPlatter:利用最少成本数据提升机器人操控的泛化能力
  • K8S学习之基础六十四:helm常用命令
  • 戴尔电脑安装Ubuntu双系统
  • 设计模式中的“万能转换器”——适配器模式
  • 【AI News | 20250331】每日AI进展
  • 鸿蒙编译构建-多目标产物
  • Scala循环守卫
  • vi编辑器常见命令
  • stm32第十一天外部中断按键控制灯
  • 自定义类型:结构体
  • 【Java】——数组深度解析(从内存原理到高效应用实践)
  • CentOS 7上手动强制升级docker-compose(不使用yum)
  • 苍穹外卖项目结构
  • Loadrunner报错Virtual User Generator 初始化用户生成器失败 初始化失败