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

1.工厂模式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
2301_7807896620 分钟前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设1 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
滴滴答答哒2 小时前
ASP.NET Core + FaceRecognitionDotNet 人脸识别实战:DI 单例、特征向量持久化与 1:N 比对
后端·asp.net
步行cgn2 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川2 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵2 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
秋天的怀念_David2 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1003 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
niucloud-admin3 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
霸道流氓气质4 小时前
智能客服组件:分层意图识别、RAG Advisor 与人工转接状态机的 Vue3 + Spring AI 生产级实战
java·人工智能·spring