1、总所周知设计模式分为三种类型
创建型:为了解决创建型问题,为了创造对象
结构型:为了解决结构问题,类或者对象的组合
行为型:负责对象间的高效沟通和职责委派
2、Spring中用到的创建型设计模式
- 单例设计模式 : Spring 中的 Bean 默认都是单例的。
- ⼯⼚设计模式 : Spring 使⽤⼯⼚模式通过 BeanFactory 、 ApplicationContext 创建bean 对象。
3、结构型设计模式
- 适配器模式 : Spring MVC 中也是⽤到了适配器模式适配不同类型的 Controller ,handleAdpeter来适配执行handle。适配器模式在Spring MVC中起到了至关重要的作用,它使得框架能够灵活地处理各种类型的Controller而无需修改DispatcherServlet的内部逻辑。
- 代理设计模式 : Spring AOP 功能的实现。Spring AOP可以使用JDK动态代理(基于接口)或CGLIB代理(基于类)。
- 装饰器设计模式 : 在Spring Boot的自动配置中,装饰者模式常用于动态地添加新功能到现有的对象之上,而无需修改其结构。例如,可以通过多层装饰者包装一个数据源或连接工厂,逐层增加事务管理、缓存处理等功能。
4、行为型
- 模板⽅法模式 : Spring 中 jdbcTemplate 、 hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使⽤到了模板模式。这些模板抽象了一些常用的操作,允许用户通过回调函数自定义这些操作的特定部分,而常规的执行流程则被模板方法所管理。
- 观察者模式: Spring 事件驱动模型就是观察者模式很经典的⼀个应⽤。
- 策略模式(Strategy Pattern):Spring允许通过配置来选择具体的策略类。例如,在Spring Security中,可以通过配置来选择不同的认证策略。这种模式提高了灵活性,使得组件可以在不同的策略实现间切换。这些设计模式不仅帮助Spring Boot维护了代码的清晰度和灵活性,而且也使得框架易于扩展和维护。