跳至主要內容

1.4 Spring用了哪些设计模式


Spring 框架广泛应用了多种设计模式,这些设计模式帮助使得框架更加灵活、可扩展和易于维护。下面是一些Spring中常用的设计模式及其在Spring框架中的应用示例:

  1. 单例模式(Singleton Pattern)

    • 应用: 在Spring框架中,默认情况下,所有的Bean都是单例的,即每个容器中只存在一个Bean的实例。
  2. 工厂模式(Factory Pattern)

    • 应用: BeanFactoryApplicationContext是Spring的核心接口,用于配置和管理Bean的生命周期,它们都是典型的工厂模式实现。
  3. 代理模式(Proxy Pattern)

    • 应用: Spring AOP(面向切面编程)广泛使用代理模式,通过代理对象来管理访问原始对象的行为。支持JDK动态代理和CGLIB代理。
  4. 模板方法模式(Template Method Pattern)

    • 应用: Spring 中的很多模板类,如 JdbcTemplate, HibernateTemplate 等,这些都使用模板方法模式,提供了一个执行标准流程的骨架,允许用户通过回调方法定制流程的某些步骤。
  5. 策略模式(Strategy Pattern)

    • 应用: Spring的资源访问策略。Resource 接口有多种实现方法,如 ClassPathResource, FileSystemResource 等,可以在运行时根据需要选择具体的资源类型。
  6. 适配器模式(Adapter Pattern)

    • 应用: Spring MVC 中的 HandlerAdapter,用于适配不同类型的控制器实现。
  7. 观察者模式(Observer Pattern)

    • 应用: Spring事件(Application Events)的处理就是观察者模式的实现,允许定义事件监听器来响应应用程序事件。
  8. 装饰器模式(Decorator Pattern)

    • 应用: Spring中的BufferedInputStreamBufferedOutputStream等I/O流的使用可以视为装饰器模式的应用,通过装饰方式提供更高效的输入输出处理。
  9. 建造者模式(Builder Pattern)

    • 应用: 在Spring框架中,使用UriComponentsBuilder等API来构建复杂的对象(如URI)是建造者模式的一个示例。
  10. 责任链模式(Chain of Responsibility Pattern)

    • 应用: Spring Security 的过滤器链(Filter Chain)实现了责任链模式,每个过滤器执行不同的安全检查功能,并决定是否将请求传递到下一个过滤器。
  11. 原型模式(Prototype Pattern)

    • 应用: 在Spring中,也可以配置Bean作为原型,这样每次请求Bean时,都会创建一个新的实例。

通过这些设计模式的应用,Spring框架提供了极高的扩展性和灵活性,使其成为企业级应用开发中广泛使用的框架之一。

上次编辑于: