Spring 中有哪些设计模式?
单例模式: Spring 的 Bean 默认是单例模式,即一个 Bean 对象只会被创建一次并在整个应用中共享。这种方式可以提高性能和资源利用率。
工厂模式: Spring 使用工厂模式来创建和管理 Bean 对象,即通过 BeanFactory 或 ApplicationContext 等容器来创建和管理 Bean 对象。这种方式可以将对象的创建和管理解耦,并且可以灵活地配置和管理对象。
代理模式:Spring 使用代理模式来实现 AOP(面向切面编程),即通过代理对象来增强原始对象的功能。这种方式可以实现横切关注点的复用,并且可以在不修改原始对象的情况下实现功能增强。
观察者模式:Spring 使用观察者模式来实现事件驱动编程,即通过事件监听机制来处理事件。这种方式可以实现松耦合,使得对象之间的交互更加灵活。
模板方法模式:Spring 使用模板方法模式来实现 JdbcTemplate、HibernateTemplate 等模板类,即将相同的操作封装在模板方法中,而将不同的操作交给子类来实现。这种方式可以减少重复代码,提高代码的复用性。
适配器模式:Spring 使用适配器模式来实现不同接口之间的适配,如 Spring MVC 中的 HandlerAdapter 接口,可以将不同类型的 Controller 适配为统一的处理器。
策略模式:Spring 使用策略模式来实现不同的算法或行为,如 Spring Security 中的 AuthenticationStrategy 接口,可以根据不同的认证策略来进行认证。
装饰器模式:Spring 使用装饰器模式来动态地增加对象的功能,如 Spring MVC 中的 HandlerInterceptor 接口,可以在处理器执行前后添加额外的逻辑。
组合模式:Spring 使用组合模式来实现复杂的对象结构,如 Spring MVC 中的 HandlerMapping 接口,可以将多个 HandlerMapping 组合成一个 HandlerMapping 链。
迭代器模式:Spring 使用迭代器模式来访问集合对象中的元素,如 Spring 的 BeanFactory 和 ApplicationContext 等容器都提供了迭代器来访问其中的 Bean 对象。
注册表模式:Spring 使用注册表模式来管理对象的注册和查找,如 Spring 的 BeanDefinitionRegistry 接口可以用来注册和管理 Bean 对象的定义。
委托模式:Spring 使用委托模式来实现不同对象之间的消息传递,如 Spring 的 ApplicationEventMulticaster 接口可以将事件委托给不同的监听器进行处理。
状态模式:Spring 使用状态模式来管理对象的状态,如 Spring 的 TransactionSynchronizationManager 类可以根据不同的事务状态来进行处理。
解释器模式:Spring 使用解释器模式来解析和处理一些复杂的表达式和规则,如 Spring Security 中的表达式语言可以用来实现访问控制。
桥接模式:Spring 使用桥接模式来将抽象和实现分离,如 Spring JDBC 中的 DataSource 接口可以与不同的数据库实现进行桥接。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号