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 本质就是工厂模式 + 反射。