跳转至

Spring 中的设计模式与工厂模式

一、Spring 用到的设计模式

模式 应用
工厂 BeanFactory、FactoryBean
单例 Bean 默认单例
代理 AOP(JDK/CGLIB)
模板方法 JdbcTemplate、RestTemplate
观察者 ApplicationEvent
适配器 HandlerAdapter
装饰器 BeanWrapper
责任链 FilterChain、Spring Security

二、工厂模式理解

简单工厂

class Factory {
    static Product create(String type) {
        if ("A".equals(type)) return new ProductA();
        return new ProductB();
    }
}

工厂方法

每个产品一个工厂,子类决定实例化什么。

抽象工厂

创建产品族。

三、Spring 的工厂

  • BeanFactory:根据名称/类型返回 Bean。
  • 配置化:不用 new,改配置就行。
  • 解耦:调用者不关心怎么创建。

四、为什么用工厂

  • 封装创建逻辑。
  • 统一管理生命周期。
  • 配置化,不硬编码。

面试要点

Spring 是设计模式的大杂烩,IoC 本质就是工厂模式 + 反射。