在Spring框架中,主要运用了以下几种设计模式:
工厂模式:
Spring beanFactory使用工厂模式在应用程序中管理对象的创建。
通过使用工厂模式,Spring可以将对象的创建与使用分离,降低耦合度。
单例模式:
Spring ioc容器中的Bean默认是单例的。
这使得Spring容器中的Bean只有一个实例,并且可以在整个应用程序中共享。
代理模式:
Spring AOP(面向切面编程)就是基于代理模式的。
Spring通过动态代理技术,为Bean创建代理对象,实现对Bean的增强和拦截。
观察者模式:
Spring event事件驱动模型使用了观察者模式。
通过观察者模式,Spring可以将事件通知给注册的观察者,从而实现各组件之间的解耦。
适配器模式:
Spring的AOP实现使用了适配器模式。
适配器模式允许将不兼容的对象包装成一个适配器类,使得它们能够与其他类一起工作。
策略模式:
Spring的Bean配置中,策略模式允许根据条件动态选择不同的实现。
通过实现策略模式,Spring可以灵活地切换不同的Bean配置。
模板方法模式:
Spring框架中的一些模板方法模式可以帮助我们实现代码的复用和抽象。
如redisTemplate , mongoTemplate
通过模板方法模式,Spring定义了一些通用的操作流程,然后通过回调方法让用户自定义具体的实现。